【发布时间】:2025-12-22 19:25:11
【问题描述】:
在我的 GitHub 帐户中,我有几个我创建的公共存储库以及几个从我组织中的存储库派生的私有存储库。
我的问题是
a) GET /user/repos 仅列出公共个人创建的存储库,而不管“类型”参数如何 b) 对分叉存储库的 COMPARE 调用返回 404
我正在使用 Oauth 2 登录。
我有什么遗漏的吗?
谢谢
【问题讨论】:
标签: github-api
在我的 GitHub 帐户中,我有几个我创建的公共存储库以及几个从我组织中的存储库派生的私有存储库。
我的问题是
a) GET /user/repos 仅列出公共个人创建的存储库,而不管“类型”参数如何 b) 对分叉存储库的 COMPARE 调用返回 404
我正在使用 Oauth 2 登录。
我有什么遗漏的吗?
谢谢
【问题讨论】:
标签: github-api
如果我理解正确,您所描述的情况如下:
GET /user/repos 时,响应不包括您的分叉(例如 gulliver-smith/private-repo)。GET /repos/gulliver-smith/private-repo/compare/:base...:head 时,您会得到一个404。如果正确,您需要验证以下几点:
确保您的 OAuth 令牌具有 repo scope。如果您的令牌不具有repo 范围,您将观察到上述行为。要验证与您的令牌关联的范围,请查看 X-OAuth-Scopes 响应标头。
$ curl -I https://api.github.com/ -H "Authorization: token REDACTED" | grep ^X-OAuth-Scopes
X-OAuth-Scopes: admin:org, admin:public_key, delete_repo, gist, notifications, repo, user
如果您使用的是属于 OAuth 应用程序的令牌,则该组织可能启用了 third-party application restrictions。如果是这样,您可以ask the organization's administrators to approve the OAuth application 以便该应用可以代表您访问组织的存储库。
【讨论】: