这是我对 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 查询中获取所有这些存储库?
您可以使用以下命令
gh repo list {organization-name}
在使用以下命令登录之前
gh auth login
github.com/cli/cli
我道歉。它在后续页面上列出了我所有的存储库。了解“page=”和“per_page=”就是我所需要的,现在我可以看到我需要的所有存储库。
要添加到原始答案,如果有很多存储库并且您想获取所需数量的存储库,可以使用以下命令。如果没有
-L
标志,它默认返回 30 个项目。
gh repo list <org> -L <#>
如果您有
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 是返回的最大存储库数量
下载官方 gh cli、github cli (https://cli.github.com/)
gh repo list $ORG -L $COUNT --json name --jq '.[].name'
将 $ORG 设置为您的组织名称,将 $COUNT 设置为您要列出的 Repos 数量。 (如果您想列出全部,请将 $COUNT 设置为组织中的回购数量)
curl -i -u“用户名”:“密码”https://your_git_url.com/organization_name | grep“代码存储库”| awk -F '"' '{print $6}'
您是否尝试过将“per_page”属性设置为“0”?我见过一些 API 使用默认值,例如 20,但如果您主动将其设置为 0,例如
?per_page=0
,您将获得所有页面。