Как получить все пользовательские репозитории по github api? (включая прикрепленные репозитории)
Я пытаюсь получить все пользовательские репозитории с помощью PyGithub. Для ясности пользователь: https://github.com/mbostock имеет 53 публичных репо.
мой код:
import github
con = github.Github(mylogin, pass)
u = g.get_user('mbostock').get_repos('all')
и я получаю 53, это правильное число, но я заметил, что среди всех полученных репозиториев я не могу найти закрепленные репозитории некоторых пользователей, например, d3 / d3, хотя этот пользователь также вносит большой вклад в этом репо.
Если кто-то знает github api и способ получения всех пользовательских репозиториев, пожалуйста, помогите.
1 ответ
Не все закрепленные репозитории пользователя принадлежат этому пользователю - они принадлежат организациям, членом которых является пользователь, поэтому они не отображаются при запросе API для репозиториев пользователя через GET /users/:user/repos
(извините, я не знаком с PyGithub, поэтому я буду говорить только в стандартных URL API).
Нет простого способа получить список репозиториев, в которые пользователь вносит свой вклад, без выполнения нескольких запросов API - например, получить список организаций, к которым принадлежит пользователь (GET /user/:user/orgs
), а затем перечисление репозиториев в этой организации (GET /orgs/:org/repos
). Однако при использовании этого подхода нет гарантии, что пользователь внес вклад в каждое хранилище в организации.
Конечно, вы могли бы дополнительно отфильтровать по авторам коммитов, но в этот момент вы, вероятно, потратили много усилий (и ограничение скорости).