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

如何在GitHub中为不同分支配置Pull Request审批规则?

用GitHub Rulesets或GitHub Actions实现指定PR审批流程

完全可以实现你们团队倾向的第二种PR审批方案,以下是具体配置方法:

方案一:GitHub Rulesets(原生配置,推荐)

GitHub Rulesets是官方原生的分支保护增强工具,无需编写代码就能直接满足需求:

  • 配置feature分支的审批规则

    1. 进入仓库「Settings」→「Rulesets」→「New ruleset」
    2. 规则范围选「Branches」,指定匹配模式为feature/*(适配你们的feature分支命名规范)
    3. 开启「Require approval before merging」选项,在「Approval requirements」中选择你的developer team作为审批团队,设置至少1名成员审批通过
    4. 可选:开启「Prevent direct pushes to matching branches」,强制所有变更必须通过PR合并
  • 配置develop分支的审批规则

    1. 新建另一个Ruleset,规则范围指定为develop分支
    2. 同样开启「Require approval before merging」,选择QA团队作为审批团队,设置至少1名成员审批通过
    3. 可选:添加辅助规则,比如限制仅特定角色发起合并等

方案二:GitHub Actions(自定义逻辑)

如果需要更灵活的自定义逻辑(比如结合其他业务条件),可以用GitHub Actions实现:

创建.github/workflows/pr-approval-check.yml文件,内容示例如下:

name: PR Approval Check
on:
  pull_request_target:
    types: [opened, reopened, synchronize, review_requested, review_request_removed]

jobs:
  check-approval:
    runs-on: ubuntu-latest
    steps:
      - name: Verify approval from required team
        env:
          PR_TARGET: ${{ github.base_ref }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          # 获取当前PR的审批者列表
          APPROVERS=$(gh pr view ${{ github.event.number }} --json approvers --jq '.approvers[].login')
          
          # 根据目标分支匹配对应审批团队
          if [[ $PR_TARGET == feature/* ]]; then
            # 替换为你的developer团队成员账号,空格分隔
            REQUIRED_MEMBERS="dev-01 dev-02 dev-03"
          elif [[ $PR_TARGET == develop ]]; then
            # 替换为你的QA团队成员账号
            REQUIRED_MEMBERS="qa-01 qa-02 qa-03"
          else
            echo "No approval rule for target branch $PR_TARGET"
            exit 0
          fi
          
          # 检查是否有符合要求的审批者
          for approver in $APPROVERS; do
            if [[ $REQUIRED_MEMBERS =~ $approver ]]; then
              echo "Valid approval from $approver detected"
              exit 0
            fi
          done
          
          echo "No valid approval from required team members"
          exit 1

注意事项

  • 使用Actions需确保GITHUB_TOKEN拥有读取PR信息和团队成员的权限
  • 若团队成员变动,可通过GitHub API动态拉取团队成员,替代硬编码的账号列表,减少维护成本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 15:12:33