如何为特定前缀分支配置不同的专属Codeowner?
可以实现该需求
原生的Codeowners文件仅支持基于文件/目录路径匹配审核者,但你可以通过以下两种方式实现按分支前缀配置不同Codeowner的需求:
方式一:分支保护规则+指定审核组
这是最直接的原生方案,无需额外脚本:
- 针对
testing/**前缀分支:- 进入仓库设置的「分支保护规则」页面,新建规则,分支名称匹配
testing/** - 开启「需要拉取请求审查才能合并」选项
- 在「需要特定人员批准」栏添加该分支对应的Codeowner组
- 进入仓库设置的「分支保护规则」页面,新建规则,分支名称匹配
- 针对
qa/**前缀分支:
重复上述步骤,创建独立的分支保护规则,添加另一组对应的Codeowner
方式二:GitHub Actions动态添加审核者
如果需要结合路径和分支的双重规则,用GitHub Actions实现更灵活的逻辑:
- 在仓库中创建
.github/workflows/branch-codeowners.yml文件 - 编写工作流,判断当前分支前缀后动态添加对应审核者
示例工作流代码:
name: Add Branch-specific Reviewers on: [pull_request] jobs: assign-reviewers: runs-on: ubuntu-latest steps: - name: Detect branch prefix id: branch-check run: | BRANCH="${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" if [[ "$BRANCH" == testing/* ]]; then echo "reviewers=team-testing" >> $GITHUB_OUTPUT elif [[ "$BRANCH" == qa/* ]]; then echo "reviewers=team-qa" >> $GITHUB_OUTPUT fi - name: Assign reviewers if: steps.branch-check.outputs.reviewers uses: actions/add-reviewers@v1 with: reviewers: ${{ steps.branch-check.outputs.reviewers }} token: ${{ secrets.GITHUB_TOKEN }}
内容的提问来源于stack exchange,提问作者Kodeswaran
相关产品推荐
相关产品推荐

