使用GitHub API V3从组织获取私人回购
我无法获得和组织私人回购。 我在这个方法中使用API V3: http : //share.jjnford.com/HhIZ
我正在使用jQuery.getJSON命令并将我的OAuth2访问令牌传递给API URL,但我只返回公共存储库。
此外,如果我将私有组织存储库分配到用户帐户(上下文)并拉出用户存储库,则除了从组织分叉的私有存储库之外,所有存储库(公共和私有)都会显示。
任何人都可以帮我解决这个问题……这是我的最后一个障碍……
提前致谢!
我找到了问题并予以纠正。 根据GitHub API V3 ,可以使用多个范围 。 似乎“用户”范围不再有效。 一旦我只使用“repo”范围,所有内容都被正确检索(私有org repos和私有分叉org repos)。
我当时找不到正确的答案,我不想要求范围“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
是的,您肯定需要更多的请求来收集所有可用的回购,但正如我之前所说,在我的情况下,我不想要求“用户”范围。
注意:是的,用户必须是给定组织内“管理”团队的成员才能看到私人回购。