phabricator - 通过hook方式实现强制code review

在phabricator上实现强制code review有两种方式,一种是将仓库托管在phabricator上,通过herald的方式来进行,具体的实现方式可以参考 《phabricator - host repository模式下强制code review设置》;另一种是在代码托管服务器上增加hook来实现。本文主要对第二种方式进行讲解。

因为我们公司的代码目前用自己搭建的Gitlab管理,所以这里以Gitlab为例子

  1. 需要在Gitlab服务器上,对应的仓库目录下新建一个 custom_hooks 文件夹(仓库目录不是clone到本地的目录,是Gitlab服务器上的,最原始的)
  2. 在文件夹中新建一个文件,名字为 pre-receive
  3. 修改文件的读写权限 chmod 755 pre-receive
  4. 修改文件的属主 chown git:git pre-receive
  5. pre-receive文件中加入对应的检查逻辑即可

脚本的思路就是取出本次提交的Revision信息,遍历commit message ,检查是否包含字符串 Reviewed By,包含的话则此次push提交成功,否则push失败。

另外,一开始有一个疑问,code review通过后如果改变本地的commit message,查了一些资料,发现arc amend能够将phabricator服务器上的review信息同步到本地,在commit message中增加Reviewed By等内容。

参考资料:

  1. https://docs.gitlab.com/ce/administration/custom_hooks.html
  2. https://secure.phabricator.com/book/phabricator/article/arcanist/
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容