如何通过GitHub API列出组织的私有存储库?

Jon*_*nik 37 github github-api github-organizations

我正在尝试获取组织的所有存储库列表,包括私有存储库.(或者更具体地说,某个用户可以访问的所有私有存储库.)

要求组织的信息(https://api.github.com/orgs/acme?access_token=[...])表明确实有很多私有存储库:

...
"public_repos": 5,
"total_private_repos": 68, 
"owned_private_repos": 68, 
...
Run Code Online (Sandbox Code Playgroud)

(我之前使用的访问令牌是使用用户名/密码的API生成的.)

但无论我试图列出回购......

https://api.github.com/orgs/acme/repos&access_token=[...]   
Run Code Online (Sandbox Code Playgroud)

... GitHub API只返回5个公共存储库.(文档说 type=all是默认的.也尝试添加参数type=private;没有区别.)

知道我做错了什么吗?

事实上,生成访问令牌的用户只能对组织的某些私有存储库进行推送和拉取访问,但这些访问令中没有一个出现在我得到的列表中(只有5个公共存储库).

Iva*_*zak 20

你正在做的一切都很好.但是,在创建用于身份验证的OAuth令牌时,请确保定义正确的范围.每个范围都定义了一组特定的允许操作(您可以读/写的信息),因此您应该检查是否正在使用repo范围创建令牌.


小智 8

您的网址需要一个 ? 不是 &。应该是这样的:

https://api.github.com/orgs/acme/repos?access_token=your_access_token


Lig*_*mer 5

还应该注意的是,如果您要从组织访问私有存储库,则 OAuth 应用程序需要由所有者根据设置进行授权。

https://help.github.com/articles/authorizing-oauth-apps/

对于具有 OAuth 应用程序访问限制的组织,您可以请求组织管理员批准该应用程序在该组织中使用。如果组织不批准该应用程序,那么该应用程序将只能访问该组织的公共资源。如果您是组织管理员,您可以自行批准该申请。

对于没有 OAuth 应用程序访问限制的组织,应用程序将自动获得访问该组织资源的授权。因此,您应该小心批准哪些 OAuth 应用程序访问您的个人帐户资源以及任何组织资源。