使用GitHub API V3获取组织的私有代码库

13

我在获取和组织私有仓库方面遇到了困难。我正在使用API V3以此方法:http://share.jjnford.com/HhIZ

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

另外,如果我将私人组织仓库分支到用户帐户(上下文),并拉取用户的仓库,则除了从组织分支的私人仓库之外,所有仓库(公共和私人)都会显示出来。

有人能帮我解决这个问题吗...这是我最后的障碍...

谢谢您提前!


问题中的链接已经失效了! - Rahul Sharma
2个回答

3

你链接的文档中说'user'是一个有效的范围。你真的知道为什么你的更改起作用了,还是只是猜测文档上的错误? - mikemaccana

0

我当时找不到正确的答案,也不想请求“repo”范围,因为它对我的应用程序来说太过于臃肿,需要代码读写权限。以下是对我有效的方法(我使用Ruby和octokit gem(https://github.com/octokit/octokit.rb)),特别感谢Github开发支持团队的Ivan:

1.- 在Oauth期间,请求“read:org”范围并从Github获取Oauth 2令牌

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

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

注意:是的,用户必须是给定组织内“管理员”团队的成员才能看到私有存储库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接