如何使用 GitHub API 从特定团队获取存储库?

Kel*_*lly 4 github

我有一个脚本可以下载我的组织中的所有存储库,并且运行良好。

我们最近添加了团队,我想定位一个特定的团队来下载该团队中的所有存储库。

为了获得整个组织,我可以这样做:(更改页码以遍历它们)

作品:

https://api.github.com/orgs/MY_ORG/repos?access_token=MY_TOKEN&per_page=100&page=1
Run Code Online (Sandbox Code Playgroud)

我该如何为组织中的团队做到这一点?我试过了:

不起作用

https://api.github.com/orgs/MY_ORG/teams/TEAM_SLUG/repos?access_token=MY_TOKEN
Run Code Online (Sandbox Code Playgroud)

以及其他一些,但都不起作用。

通过查看API 文档,我正在尝试的似乎应该可行。我什至无法获得文档所拥有的团队列表:

GET /orgs/:org/teams/:team_slug
Run Code Online (Sandbox Code Playgroud)

所以如果我这样做:

https://api.github.com/orgs/MY_ORG/teams/TEAM_SLUG?access_token=MY_TOKEN
Run Code Online (Sandbox Code Playgroud)

我刚刚收到“未找到”错误,并带有指向文档的链接。

有人成功做到这一点吗?

小智 6

您没有尝试正确的 API 来获取团队中的存储库

尝试

GET /teams/:team_id/repos
Run Code Online (Sandbox Code Playgroud)

要获取团队 ID,您可以列出所有组织团队,如下所示:

GET https://api.github.com/orgs/<ORGANISATION>/teams
Run Code Online (Sandbox Code Playgroud)

如果您自行托管 GitHub Enterprise,则替换https://api.github.comhttps://<HOSTNAME>/api/v3/

将个人访问令牌发送为:

Authorization: token <PERSONALACCESSTOKEN>
Run Code Online (Sandbox Code Playgroud)

使用卷曲:

要获取团队存储库:

curl -H "Authorization: token <PERSONALACCESSTOKEN>" -X GET https://api.github.com/teams/:team_id/repos
Run Code Online (Sandbox Code Playgroud)

获取团队ID:

curl -H "Authorization: token PERSONALACCESSTOKEN" -X GET https://api.github.com/orgs/<ORGANISATION>/teams
Run Code Online (Sandbox Code Playgroud)

进一步阅读:

API 身份验证: https: //developer.github.com/v3/#authentication

列出团队:https://developer.github.com/v3/teams/#list-team-repos