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

问题描述 投票:0回答:8

这是我对 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,我会在同一页面上看到私有组织存储库和我的团队存储库并排显示。有没有办法在同一个 API 查询中获取所有这些存储库?

github github-api
8个回答
51
投票

您可以使用以下命令

gh repo list {organization-name}

在使用以下命令登录之前

gh auth login

github.com/cli/cli


8
投票

我道歉。它在后续页面上列出了我所有的存储库。了解“page=”和“per_page=”就是我所需要的,现在我可以看到我需要的所有存储库。


7
投票

要添加到原始答案,如果有很多存储库并且您想获取所需数量的存储库,可以使用以下命令。如果没有

-L
标志,它默认返回 30 个项目。

gh repo list <org> -L <#> 

5
投票

如果您有

gh
、github cli (https://cli.github.com/) 和
jq
(https://stedolan.github.io/jq/),您可以执行以下操作:

gh repo list $ORG -L $COUNT --json name | jq '.[].name' | tr -d '"'

其中 $ORG 是您的组织名称,$COUNT 是返回的最大存储库数量


4
投票

下载官方 gh cli、github cli (https://cli.github.com/)

gh repo list $ORG -L $COUNT --json name --jq '.[].name'

将 $ORG 设置为您的组织名称,将 $COUNT 设置为您要列出的 Repos 数量。 (如果您想列出全部,请将 $COUNT 设置为组织中的回购数量)


0
投票

curl -i -u“用户名”:“密码”https://your_git_url.com/organization_name | grep“代码存储库”| awk -F '"' '{print $6}'


0
投票

您是否尝试过将“per_page”属性设置为“0”?我见过一些 API 使用默认值,例如 20,但如果您主动将其设置为 0,例如

?per_page=0
,您将获得所有页面。


0
投票

我创建了一个脚本来获取所有公私仓库。我希望这有帮助。

所需参数:

  • 代币
  • 组织
© www.soinside.com 2019 - 2024. All rights reserved.