#java #git #github #jira #jgit
#java #git #github #jira #jgit
Вопрос:
Прежде чем мы начнем: я новичок, так что приношу свои извинения
Краткое описание:
У меня есть плагин Jira, который может отслеживать текущее состояние указанного репозитория в выбранном поставщике git, например GitHub (отслеживание коммитов, ветвей и т.д.) И Отображать его в представлении проблем JIRA
Мне нужно проверить, является ли репозиторий, который я добавляю в плагин, частным или общедоступным. Если он частный, мне нужно запросить учетные данные для него.
Есть ли способ проверить это условие в Java (например, через JGit)?
P.S. Я добавляю репозиторий в свой плагин по ссылке HTTPS
Комментарии:
1. Это может варьироваться в зависимости от того, GitHub это, GitLab, BitBucket или какой-либо другой хостинг. Сам по себе Git не имеет понятия «общедоступный» или «приватный». Хотя я бы предположил, что если вы попытаетесь получить к нему доступ и получите ответ 403 — он частный.
2. @fredrik Поэтому я ввел «например, GitHub»
3. @fredrik Я нашел некоторый GitHub API. Возможно, есть ответ 🙂 Я предполагаю, что я должен искать такие API именно для того провайдера, который мне нужен… Кажется, общего решения нет
4. Напротив, каждое решение уникально. Я полагаю, вы на самом деле имеете в виду, что общего решения не существует, о чем я уже говорил.
5. @fredrik возможно. Мой замечательный английский 🙂
Ответ №1:
В частности, GitHub предоставляет REST API для составления списка пользовательских репозиториев. Согласно документации разработчика, вы могли бы использовать GET для получения всех репозиториев пользователя, а «Видимость» является параметром
GET /user/repos
Параметр: visibility
Тип: string
Значение: all
, public
, private
В ответе также есть параметр "private": false
, который можно легко проанализировать из ответа.
Подробнее здесь:https://developer.github.com/v3/repos/#list-user-repositories
Комментарии:
1. Значит ли это, что кто-то, кроме меня или кого-то на Github, может получить информацию о моих частных репозиториях?
2. Существуют два разных API. Один для перечисления ваших собственных репозиториев, который позволяет перечислять даже частные репозитории. Один для перечисления чьих-либо репозиториев, в котором не перечислены частные репозитории (это было бы иронично и противоположно тому, что означает private !). Я полагаю, что @LexSav перечисляет свои собственные репозитории.