使用GitHub API V3从组织获取私人回购

时间:2012-01-23 17:24:40

标签: jquery git api github github-api

我无法获得和组织私人回购。我使用API​​ V3使用此方法:http://share.jjnford.com/HhIZ

我正在使用jQuery.getJSON命令并将我的OAuth2访问令牌传递给API URL,但我只返回公共存储库。

此外,如果我将私人组织存储库分配到用户帐户(上下文)并拉出用户存储库,则除了从组织分叉的私有存储库外,所有存储库(公共和私有)都会显示。

任何人都可以帮我解决这个问题......这是我的最后一道障碍......

提前致谢!

2 个答案:

答案 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

是的,你肯定需要更多的请求来收集所有可用的回购,但正如我之前所说,在我的情况下,我不想要求“用户”范围。

注意:是的,用户必须是特定组织内“管理”团队的成员才能看到私人回购。

相关问题