В то время я не мог найти правильный ответ на этот вопрос, и я не хочу просить область «репо», поскольку это слишком излишне для моего приложения, оно запрашивает разрешения на чтение / запись кода. Вот что сработало для меня (я использую Ruby вместе с гемом octokit (https://github.com/octokit/octokit.rb)), особая благодарность Ивану из поддержки github dev:
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
Да, вам определенно потребуются дополнительные запросы для сбора всех доступных репозиториев, но, как я уже говорил, в моем случае я не хотел запрашивать область действия "пользователя".
Примечание. Да, пользователь должен быть членом группы «администратор» в рамках данной Организации, чтобы иметь возможность просматривать частные репозитории.