我无法获得和组织私人回购。我使用API V3使用此方法:http://share.jjnford.com/HhIZ
我正在使用jQuery.getJSON命令并将我的OAuth2访问令牌传递给API URL,但我只返回公共存储库。
此外,如果我将私人组织存储库分配到用户帐户(上下文)并拉出用户存储库,则除了从组织分叉的私有存储库外,所有存储库(公共和私有)都会显示。
任何人都可以帮我解决这个问题......这是我的最后一道障碍......
提前致谢!
答案 0 :(得分:3)
我找到了问题并予以纠正。根据可以使用的GitHub API V3 there are multiple scopes。似乎“用户”范围不再有效。一旦我只使用“repo”范围,所有内容都被正确检索(私有org repos和私有分叉org repos)。
答案 1 :(得分:0)
我当时找不到正确的答案,我不想要求范围“repo”,因为它对我的应用程序来说太过分了,它要求代码读/写permssions。这对我有用(我使用Ruby和octokit gem(https://github.com/octokit/octokit.rb)),特别感谢来自github dev支持的Ivan:
1.-在Oauth期间,请求“读取:org”范围并从Github获取Oauth 2令牌
2.-初始化octokit的客户端:
client = Octokit::Client.new(access_token: my_oauth2_token)
3.-检索用户的组织,我们可以这样做,因为“读取:组织”范围
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
是的,你肯定需要更多的请求来收集所有可用的回购,但正如我之前所说,在我的情况下,我不想要求“用户”范围。
注意:是的,用户必须是特定组织内“管理”团队的成员才能看到私人回购。