如何实现分支A的PR获批后自动向分支B提交新PR?
如何实现PR获批后自动向其他分支提交新PR
你的具体场景:分支A PR获批后自动提交分支B的PR
可以通过代码托管平台的自动化工作流工具实现,以主流平台为例:
- 新建工作流配置文件,把触发条件设为分支A的PR被批准/合并(多数场景下获批后会执行合并,可根据平台支持的事件类型选择)
- 在工作流中完成这几步:拉取仓库代码、将分支A的内容同步到分支B、调用平台官方API自动创建分支B的PR
通用实现方法
所有主流代码托管平台(GitHub、GitLab、Bitbucket等)都支持这类需求,核心逻辑一致:
- 监听PR状态事件:配置自动化工作流,仅在目标PR被批准或合并时触发执行
- 代码同步(可选):如果需要把获批PR的代码同步到目标分支,执行合并或cherry-pick操作
- 自动创建新PR:调用平台API,传入源分支、目标分支、PR标题、描述等参数,自动生成新PR
简单示例(GitHub Actions)
name: Auto-Create PR After Merge on: pull_request: types: [closed] branches: [branch-A] jobs: generate-pr: runs-on: ubuntu-latest # 仅在PR被合并时执行 if: github.event.pull_request.merged == true steps: - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth: 0 - name: Sync branch-A to branch-B run: | git config --global user.name "github-actions[bot]" git config --global user.email "github-actions[bot]@users.noreply.github.com" git checkout branch-B git merge origin/branch-A --no-ff -m "Auto-sync: Merge branch-A into branch-B" git push origin branch-B - name: Create PR for branch-B run: | curl -X POST \ -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ -H "Accept: application/vnd.github.v3+json" \ https://api.github.com/repos/${{ github.repository }}/pulls \ -d '{ "title": "Auto-generated PR from branch-A", "head": "branch-B", "base": "main", "body": "This PR was automatically created after the branch-A PR was merged." }'
关键注意事项
- 确保自动化服务账号(如GitHub的actions bot)拥有仓库写权限和创建PR的权限
- 不同平台的事件触发规则、API格式略有差异,比如GitLab使用
merge_request事件,API地址和参数也有区别 - 若无需同步代码,可直接基于获批分支的提交创建新PR,跳过合并步骤
内容的提问来源于stack exchange,提问作者champion
相关产品推荐
相关产品推荐

