列出组织的所有 GitHub 存储库 - 包括团队中的存储库

Posted

技术标签:

【中文标题】列出组织的所有 GitHub 存储库 - 包括团队中的存储库【英文标题】:List all GitHub repos for an organization - INCLUDING those in teams 【发布时间】:2013-09-09 22:04:26 【问题描述】:

这是我对 GitHub API 的查询

curl -i -u user https://api.github.com/orgs/org/repos?type=all

但这并没有列出我有权访问的该组织的所有存储库。具体来说,它没有列出组织中属于我所在团队的回购。

如果我要查询

curl -i -u user https://api.github.com/teams/teamid/repos

我会看到丢失的存储库。如果我要导航到 github.com,我会在同一页面上看到私人组织 repos 和我的团队 repos 彼此相邻。有没有办法在同一个 API 查询中获取所有这些存储库?

【问题讨论】:

【参考方案1】:

你可以使用下面的命令

gh 存储库列表 组织名称

使用以下命令登录之前

gh 认证登录

github.com/cli/cli

【讨论】:

gh 是新的 GitHub CLI:github.com/cli/cli 是的,鲍里斯是正确的。我错过了这条评论。【参考方案2】:

我很抱歉。它列出了我所有的回购......在后续页面上。了解“page=" 和 "per_page=" 是我所需要的,现在我可以看到我需要的所有 repos。

【讨论】:

遗憾的是没有端点来获取特定组织下的回购总数。我有点用per_page=500 破解了,所以涵盖了大多数情况。 developer.github.com/v3/repos/#list-organization-repositories per_page=100 是最大值。【参考方案3】:

curl -i -u "用户名":"密码" https://your_git_url.com/organization_name | grep "代码库" | awk -F '"' '打印 $6'

【讨论】:

这只是计算存储库。问题不是要列出所有这些吗?【参考方案4】:

您是否尝试将“per_page”属性设置为“0”?我见过一些 API 使用默认值,例如 20,但如果您将其设置为 0,例如 ?per_page=0,您将获得所有页面。

【讨论】:

试过你的建议,很遗憾没有奏效。【参考方案5】:

要添加到原始答案,如果有很多存储库并且您想获取所需数量的存储库,则可以使用以下命令。如果没有 -L 标志,它默认返回 30 个项目。

gh repo list <org> -L <#> 

【讨论】:

以上是关于列出组织的所有 GitHub 存储库 - 包括团队中的存储库的主要内容,如果未能解决你的问题,请参考以下文章

python 用于列出github组织的所有存储库的脚本

使用 Octokit 从 Github 列出所有组织

当存储库在组织下时,Github Api 列表提交状态

Github API 列出所有存储库和 repo 的内容

如何从命令行列出 Github 包注册表存储库中的所有包?

sh 用于备份组织的所有GitHub存储库的Shell脚本