如何在Github中自动批量创建master同步到client-*分支的PR?
批量为
client-*分支创建master同步PR的实现方法 完全可以实现,根据你使用的代码托管平台不同,有两种成熟的批量操作方案:
方案1:使用对应平台的官方CLI工具(操作最简便)
主流代码托管平台都提供了官方CLI工具,可以直接在终端调用接口完成PR创建,不需要额外写接口请求逻辑,以GitHub为例操作步骤如下:
- 本地提前安装GitHub CLI,完成账号权限认证
- 进入项目本地目录,执行
git fetch origin拉取最新的远端分支列表,确保本地master分支和远端保持同步 - 执行如下shell脚本完成批量PR创建:
# 遍历所有远端以client-为前缀的分支 for branch in $(git ls-remote --heads origin | grep 'refs/heads/client-' | awk -F '/' '{print $3}'); do # 自动创建PR,指定目标分支为client分支,源分支为master gh pr create \ --base "$branch" \ --head master \ --title "Sync latest master changes to $branch" \ --body "Auto-generated PR to sync latest master updates to client branch. Please review and merge if no conflicts." done
如果你使用的是GitLab,将gh pr create替换为GitLab CLI的对应命令glab mr create即可,参数逻辑完全一致。
方案2:调用平台OpenAPI实现(自定义程度更高)
如果你需要额外增加自定义逻辑,比如自动添加审核人、跳过有合并冲突的分支,可以直接调用平台的开放接口实现:
- 第一步调用平台的分支列表接口,过滤所有名称前缀为
client-的分支 - 第二步遍历过滤后的分支列表,循环调用PR/MR创建接口,指定源分支为
master、目标分支为当前遍历的client-*分支,填写统一的PR标题和描述 - 可扩展逻辑:创建PR前先调用合并冲突检测接口,存在冲突的分支跳过创建,单独输出日志后续人工处理
注意事项
- 执行批量操作前建议先拿1~2个
client-*分支做测试,确认PR的源、目标分支配置正确再全量执行 - 如果项目配置了分支保护规则,需要提前给执行操作的账号开通PR创建权限,避免批量创建失败
- 存在合并冲突的PR会被平台自动标记冲突状态,不需要额外处理,后续人工解决冲突后再合并即可
内容的提问来源于stack exchange,提问作者Oliver D
相关产品推荐
相关产品推荐

