V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
beryl
V2EX  ›  问与答

gitlab 如何强制 code review

  •  
  •   beryl · 2021-12-10 16:21:36 +08:00 · 2396 次点击
    这是一个创建于 1084 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT.

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

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

    20 条回复    2021-12-13 09:12:19 +08:00
    dilu
        1
    dilu  
       2021-12-10 16:39:32 +08:00
    没用的,时间一久就会流于形式
    ebingtel
        2
    ebingtel  
       2021-12-10 16:49:46 +08:00
    设置保护分支 没有 review ,就不能合并啊?
    amundsen
        3
    amundsen  
       2021-12-10 16:56:04 +08:00   ❤️ 1
    可以设置机器人的,我公司就是这样做的
    cnoder
        4
    cnoder  
       2021-12-10 16:59:55 +08:00
    不让 merge ,必须提 merge request 给别人呗
    66beta
        5
    66beta  
       2021-12-10 17:00:41 +08:00
    收回 merge 权限啊
    zhangyichent
        6
    zhangyichent  
       2021-12-10 17:05:15 +08:00
    我以前公司是有一个工具的,就是安装一下,你提交代码之前就必须从这个工具走 git ,他会发邮件给你指定的几个人。。。不过忘了叫啥了
    beryl
        7
    beryl  
    OP
       2021-12-10 18:59:02 +08:00
    @cnoder
    @66beta
    @ebingtel
    是的,但是都有 merge 权限,如果收回 merge 权限,会导致,只有一两个人可以 merge, 期望的是可以交叉 review
    SoloCompany
        8
    SoloCompany  
       2021-12-10 19:08:05 +08:00 via iPhone
    新版的支持 approve 啊,可以收回 merge 权限,分配 reviewer ,要求必须经过 approval 才允许 merge ,负责 merge 的人不需要负责 review
    clf
        9
    clf  
       2021-12-10 19:14:50 +08:00 via Android
    @beryl 可以取消 mr 权限,弄个机器人账号有权限,机器人脚本监听到非提交 mr 本人 review 后自动合并。
    beryl
        10
    beryl  
    OP
       2021-12-10 19:23:43 +08:00
    @SoloCompany 这个需要企业付费版本
    qianlifeng
        11
    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
        12
    Leviathann  
       2021-12-10 21:47:58 +08:00
    只给测试和 tech lead merge 权限
    SoloCompany
        13
    SoloCompany  
       2021-12-11 01:37:56 +08:00 via iPad
    @beryl 我们用的是 13 ,好像并不是 ee 专有的功能
    beryl
        14
    beryl  
    OP
       2021-12-11 10:07:00 +08:00
    @SoloCompany 表达错误了,现在这种模式我们也是有的,但是有个问题是,如果把 merge 权限收回来,团队里面可能只有两个人有权限,这样这两个人可能会成为瓶颈,期望的是,自己提交的至少非本人来 review 即可以。
    horizon
        15
    horizon  
       2021-12-11 10:35:21 +08:00 via Android
    写个 chrome 插件或者注入脚本,自己的 mr 不让点 merge
    beryl
        16
    beryl  
    OP
       2021-12-11 10:39:20 +08:00
    @horizon 这是个好玩但是不好执行的思路。。。毕竟不是每个人都用 chrome
    zhangyichent
        17
    zhangyichent  
       2021-12-11 15:13:36 +08:00
    gerrit 对了,叫这个。
    SoloCompany
        18
    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
        19
    horizon  
       2021-12-12 17:32:45 +08:00 via Android
    @zhangyichent 试试 nginx 注入 js 脚本
    ebingtel
        20
    ebingtel  
       2021-12-13 09:12:19 +08:00
    @beryl 每个人提交 mr 之后,可以 @别人 review ,不需要合并者处理……不过这个步骤,不是强制的……可以通过 gitlab 的 web hook 接口,发现有 mr 时,就发个通知给随机某个人处理
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3214 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 00:39 · PVG 08:39 · LAX 16:39 · JFK 19:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.