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

如何通过GH CLI筛选并克隆指定规则的GitHub仓库?

解决方案:筛选并克隆指定规则的GitHub仓库

方法一:使用gh repo list直接筛选并克隆

这是最简洁的实现方式,结合grep做正则筛选后循环克隆:

gh repo list open-itg --limit 500 --json name --jq '.[].name' | grep -E 'terraform-datadog-.+-oac' | while read -r repo_name; do
  gh repo clone "open-itg/$repo_name"
done
  • --json name --jq '.[].name':仅提取仓库名称,过滤掉多余输出内容
  • grep -E 'terraform-datadog-.+-oac':用扩展正则精准匹配terraform-datadog-<服务名>-oac格式的仓库
  • 循环读取筛选后的仓库名,调用gh repo clone完成批量克隆

方法二:使用gh api结合jq筛选

如果需要更灵活的API参数控制,可通过GitHub API配合jq的内置筛选能力实现:

gh api -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" /orgs/open-itg/repos --paginate --jq '.[] | select(.name | test("terraform-datadog-.+-oac")) | .name' | while read -r repo_name; do
  gh repo clone "open-itg/$repo_name"
done
  • --paginate:自动处理分页请求,确保获取组织内所有仓库
  • jq '.[] | select(.name | test("正则")) | .name':直接在jq环节完成仓库名的规则筛选

你之前命令的问题说明

  1. 第一段命令仅列出所有仓库名称,未添加筛选逻辑,无法定位目标仓库。
  2. 第二段命令存在多处错误:
    • Bash的正则匹配=~后不需要加引号,加引号会将正则转为普通字符串匹配,失去规则作用。
    • 正则表达式写得不准确,正确规则应为terraform-datadog-.+-oac,而非^(open-itg/terraform-datadog*)。
    • 循环结构不完整,缺少then和fi语句,也没有添加克隆仓库的执行逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 16:35:06