gitlab 如何强制 code review

2021-12-10 16:21:36 +08:00
 beryl

RT.

期望不论谁提交的代码,至少需要其他人打分之后才可以通过

首先团队里面目前是认同 CR, 但是 gitlab 没有办法做强制 review, 也没查到很好的方案。

2396 次点击
所在节点    问与答
20 条回复
dilu
2021-12-10 16:39:32 +08:00
没用的,时间一久就会流于形式
ebingtel
2021-12-10 16:49:46 +08:00
设置保护分支 没有 review ,就不能合并啊?
amundsen
2021-12-10 16:56:04 +08:00
可以设置机器人的,我公司就是这样做的
cnoder
2021-12-10 16:59:55 +08:00
不让 merge ,必须提 merge request 给别人呗
66beta
2021-12-10 17:00:41 +08:00
收回 merge 权限啊
zhangyichent
2021-12-10 17:05:15 +08:00
我以前公司是有一个工具的,就是安装一下,你提交代码之前就必须从这个工具走 git ,他会发邮件给你指定的几个人。。。不过忘了叫啥了
beryl
2021-12-10 18:59:02 +08:00
@cnoder
@66beta
@ebingtel
是的,但是都有 merge 权限,如果收回 merge 权限,会导致,只有一两个人可以 merge, 期望的是可以交叉 review
SoloCompany
2021-12-10 19:08:05 +08:00
新版的支持 approve 啊,可以收回 merge 权限,分配 reviewer ,要求必须经过 approval 才允许 merge ,负责 merge 的人不需要负责 review
clf
2021-12-10 19:14:50 +08:00
@beryl 可以取消 mr 权限,弄个机器人账号有权限,机器人脚本监听到非提交 mr 本人 review 后自动合并。
beryl
2021-12-10 19:23:43 +08:00
@SoloCompany 这个需要企业付费版本
qianlifeng
2021-12-10 21:33:45 +08:00
我们是创建了一个 git alias `git config --global alias.review '!sh review.sh'`, 在 review.sh 脚本里面自动创建新的分支,然后提交 pull request, 并提醒需要 review 的人去 review. review 的人 review 完了可以在 gitlab 上面点 merge 就行. 使用的时候`git review [somebody]`就行, 当然需要关闭 gitlab 的直接 push 功能,防止某些人误操作. 只是一个思路, review.sh 怎么弄看你们自己发挥
Leviathann
2021-12-10 21:47:58 +08:00
只给测试和 tech lead merge 权限
SoloCompany
2021-12-11 01:37:56 +08:00
@beryl 我们用的是 13 ,好像并不是 ee 专有的功能
beryl
2021-12-11 10:07:00 +08:00
@SoloCompany 表达错误了,现在这种模式我们也是有的,但是有个问题是,如果把 merge 权限收回来,团队里面可能只有两个人有权限,这样这两个人可能会成为瓶颈,期望的是,自己提交的至少非本人来 review 即可以。
horizon
2021-12-11 10:35:21 +08:00
写个 chrome 插件或者注入脚本,自己的 mr 不让点 merge
beryl
2021-12-11 10:39:20 +08:00
@horizon 这是个好玩但是不好执行的思路。。。毕竟不是每个人都用 chrome
zhangyichent
2021-12-11 15:13:36 +08:00
gerrit 对了,叫这个。
SoloCompany
2021-12-11 18:29:37 +08:00
@beryl 你还是没理解, 关键在于 review 权限和 merge 权限分开, 既然你不需要控制 merge 只希望控制 review, 而又懒的找个人去点按钮, 甚至可以写个 robot 在 reviewer 点 approve 的同时自动 merge

当然, 如果开发者完全不配合, 自己点 approve 按钮, 而又不想分配人员来行使复核并 merge 的责任, 那么你可以让 robot 只是简单的检查 approver 必须和 submitter 不同, 也就是说 submitter 必须找个人帮他点 approve 按钮
horizon
2021-12-12 17:32:45 +08:00
@zhangyichent 试试 nginx 注入 js 脚本
ebingtel
2021-12-13 09:12:19 +08:00
@beryl 每个人提交 mr 之后,可以 @别人 review ,不需要合并者处理……不过这个步骤,不是强制的……可以通过 gitlab 的 web hook 接口,发现有 mr 时,就发个通知给随机某个人处理

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/821366

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX