В то время я не мог найти правильный ответ на этот вопрос, и я не хочу запрашивать область «репо», так как это слишком избыточно для моего приложения, оно запрашивает разрешения на чтение/запись кода. Вот что у меня сработало (я использую Ruby вместе с драгоценным камнем octokit (https://github.com/octokit/octokit.rb)), отдельная благодарность Ивану из службы поддержки разработчиков github:
1.- Во время Oauth запросите область «read: org» и получите токен Oauth 2 от Github.
2.- инициализировать клиент octokit:
client = Octokit::Client.new(access_token: my_oauth2_token)
3.- Получить организации пользователя, мы можем сделать это из-за области «read: org».
organizations = client.organizations
4.- Для каждой организации получите группу администраторов Github, к которой принадлежит этот пользователь. А затем используйте эту команду для получения доступных репозиториев.
organizations.each do |organization|
admin_team = client.organization_teams(organization[:id]).select { |repo| repo[:permission] == 'admin' }.first
org_repos << client.team_repositories(admin_team[:id])
end
Да, вам определенно понадобится больше запросов, чтобы собрать все доступные репозитории, но, как я уже говорил, в моем случае я не хотел запрашивать область действия «пользователь».
Примечание. Да, пользователь должен быть членом команды администраторов в данной организации, чтобы иметь возможность просматривать частные репозитории.
person
Rogelio Alejandro Ortiz Sevill
schedule
01.09.2015