Проверьте, является ли репозиторий Git частным или общедоступным (например, для GitHub), используя Java

#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 перечисляет свои собственные репозитории.