如何通过GitHub API列出用户的GitHub存储库

时间:2019-03-11 15:23:07

标签: php github oauth-2.0 github-api

我正在尝试通过GitHub API列出用户的私有存储库。我当前向GitHub发出的请求如下。

https://api.github.com/users/username/repos?sort=updated&direction=desc&visibility=all

它确实返回用户的存储库,但不返回私有存储库。最初,我认为问题出在我的OAuth令牌上的scopes选项。目前,我的应用程序中有以下设置。

'user',
'repo',
'repo_deployment',
'admin:repo_hook',
'admin:org_hook',

但是,即使我在dev框中设置了所有scope选项,我也看到了所有公共存储库,但看不到用户的私有存储库。我也尝试过从网址中删除所有参数。因此请求如下。

https://api.github.com/users/username/repos

再次没有返回用户的私有存储库。

我正在尝试获取当前用户的私有存储库。但只有那些在其帐户下拥有的人。

2 个答案:

答案 0 :(得分:3)

为此您使用了错误的端点。您将使用以下端点代替

https://developer.github.com/v3/repos/#list-your-repositories

https://api.github.com/user/repos
  

列出经过身份验证的用户具有显式权限(:read,:write或:admin)的存储库。经过身份验证的用户具有访问其拥有的存储库,作为协作者的存储库以及可以通过组织成员身份访问的存储库的明确许可。

我刚刚对其进行了测试,这将返回您的私有存储库。

希望这会有所帮助。

答案 1 :(得分:0)

您可能需要authorize自己才能获得列出您的私有存储库的许可。

获取OAuth令牌from the account(或从OAuth Authorizations API),然后将该令牌添加为GET参数(在查询字符串?access_token=OAUTH-TOKEN中)或HTTP标头({{1} })的请求,则可能需要您的许可。