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