如何列出GitHub Enterprise指定组织下的全部代码仓库
解决方案
方案1:使用curl分页拉取
GitHub REST API 单页最多返回100条仓库数据,250个仓库需要分3页拉取,可通过循环批量获取:
# 替换为你自己的个人访问令牌 export mytoken="你的访问token" # 分页拉取所有仓库,提取ssh_url for page in {1..3}; do curl -sX GET -H "Authorization: token ${mytoken}" "https://my.company.url/api/v3/orgs/my_sub_org/repos?per_page=100&page=${page}" \ | grep ssh_url | awk -F': ' '{print $2}' done
如果需要动态适配总页数,可在首次请求时读取响应头的Link字段解析出最后一页的页码,无需硬编码页数范围。
方案2:正确配置使用gh命令获取
你之前的gh命令未指定企业实例域名、组织参数,因此无法返回正确结果,按以下步骤操作即可:
- 先完成gh的企业实例认证:
gh auth login --hostname my.company.url
按照提示完成认证后,执行以下命令拉取组织全部仓库:
# 直接列出所有仓库信息,--limit 0表示拉取全部不做数量限制 gh repo list my_sub_org --hostname my.company.url --limit 0 # 如果仅需要ssh仓库地址,可通过参数过滤直接输出: gh repo list my_sub_org --hostname my.company.url --limit 0 --json sshUrl --jq '.[].sshUrl'
内容的提问来源于stack exchange,提问作者DJ_Stuffy_K
相关产品推荐
相关产品推荐

