【开发配置】GitLab CR(Code Review)规则配置清单
企业常用 GitLab Code Review 规则配置清单,直接按下面执行,就能搭好一套 强制 CR 流程。
🚀 GitLab CR(Code Review)规则配置清单
1. 保护主分支(Protected Branch)
目的: 禁止直接 push,所有改动必须走 MR。
配置步骤:
-
进入:
Project → Settings → Repository → Protected Branches
-
选择
main
/master
/release/*
等关键分支 -
设置:
- Allowed to merge → Maintainers(或指定角色)
- Allowed to push → No one
✅ 这样所有改动必须走 MR。
2. 配置 MR 审批规则(Approval Rules)
目的: 强制 MR 需要多人审批,才能合并。
配置步骤:
-
进入:
Project → Settings → General → Merge request approvals
-
建议配置:
- Approvals required → 至少 2 人
- Prevent approval by author → 开启(作者不能 Approve 自己的 MR)
- Reset approvals when new commits are pushed → 开启(防止合并前偷偷改代码)
- Remove all approvals when commits are added → 开启
✅ 确保至少 2 个 Reviewer 审过代码。
3. 启用 CODEOWNERS(细粒度 CR)
目的: 指定某些文件/目录必须由特定人审批。
配置:
在项目根目录添加 .gitlab/CODEOWNERS
:
# 前端代码必须前端组审
/frontend/ @frontend-team# 数据库脚本必须 DBA 审
*.sql @dba# 文档由技术写手审
/docs/ @tech-writer
然后在审批规则里启用 Code Owners 作为必需审批人。
✅ 确保不同模块有对应专家 CR。
4. 防绕过设置
在 Merge request approvals
里打开:
- ✅ Prevent approvals by author
- ✅ Prevent approvals by reviewers who are also authors of the MR
- ✅ Reset approvals when commits are added
✅ 防止作者自审、换 reviewer 绕过、合并前偷偷加代码。
5. 配合 CI/CD 强化 CR 质量
在 .gitlab-ci.yml
里增加以下步骤,合并前必须跑通:
- Lint(ESLint / Checkstyle / Pylint)
- 单元测试(Jest / JUnit / PyTest)
- 安全扫描(SAST / Dependency Scanning)
设置 Required pipeline status = Passed 才能 Merge。
6. 企业常见策略推荐
- 🔒 关键分支保护:
main/master
、release/*
必须 MR。 - 👥 MR 审批:至少 2 人,不能自审。
- 📂 CODEOWNERS:关键模块强制专家审查。
- ✅ CI/CD:必须通过测试和安全扫描。
- 📝 Commit message:建议强制符合规范(可加 commitlint)。
📌 这样配置下来,GitLab 的 CR 流程会非常稳健:
- 没人能直接 push 主分支
- 每个 MR 都要经过多人 CR
- 专家必须审关键模块
- CI/CD 确保代码质量
- 无法绕过审批