You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取GitLab指定分组下所有仓库的SSH地址列表?

获取GitLab分组下所有仓库SSH地址的正确方法

你的原命令使用/groups/56627504/接口获取分组信息,其中返回的projects字段只是分组内项目的部分预览(默认最多返回20个),无法拿到全部仓库数据。要获取所有仓库的SSH地址,应该使用GitLab API专门的分组项目列表接口:

1. 单次获取(项目数≤100)

GitLab API允许通过per_page参数最多一次获取100个项目,直接提取每个项目的ssh_url_to_repo:

curl --header "PRIVATE-TOKEN: glpat-pnwcu54ZQKz3gtyG-fty" "https://gitlab.com/api/v4/groups/56627504/projects?per_page=100" | jq -r '.[].ssh_url_to_repo'

2. 分页获取(项目数超过100)

如果分组内项目超过100个,需要循环遍历所有分页:

page=1
while true; do
  response=$(curl --header "PRIVATE-TOKEN: glpat-pnwcu54ZQKz3gtyG-fty" "https://gitlab.com/api/v4/groups/56627504/projects?per_page=100&page=$page")
  # 当返回的项目数组为空时停止循环
  if [ "$(echo "$response" | jq 'length')" -eq 0 ]; then
    break
  fi
  echo "$response" | jq -r '.[].ssh_url_to_repo'
  page=$((page+1))
done

关键说明

  • 用/groups/:id/projects接口替代/groups/:id接口,前者专门用于获取分组下的完整项目列表,支持分页。
  • per_page=100是GitLab API允许的最大单次返回数量,减少请求次数。
  • 循环分页时,通过检查返回的项目数组长度判断是否还有下一页。

内容的提问来源于stack exchange,提问作者Andrew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 10:01:15