13

我在获取和组织私人回购时遇到了麻烦。我通过这种方法使用 API V3:http: //share.jjnford.com/HhIZ

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

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

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

提前致谢!

4

2 回答 2

3

我发现了问题并纠正了它。根据GitHub API V3 ,可以使用多个范围。似乎“用户”范围不再有效。一旦我只使用了“repo”范围,一切都被正确检索(私人组织回购和私人分叉组织回购)。

于 2012-01-24T15:39:27.343 回答
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 管理团队。然后,使用这个 Team 来检索可用的 repos

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

是的,您肯定需要更多请求来收集所有可用的 repos,但正如我之前所说,就我而言,我不想询问“用户”范围。

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

于 2015-09-01T00:54:59.913 回答