Gerrit审批流程设置

海外服务器 (588) 2016-05-03 16:39:27

首先Gerrit中已经有了两个帐号,一个是我的帐号,属于管理员,另一个是工程师。

本文就描述一个简单的审批流程:

工程师提交代码,我Review通过,然后将代码提交。

step1: 创建Reviewer组和Verifier组

Reviewer负责review

Verifier负责将review的结果提交到Git中心仓库中

然后设置成员,由于我是管理员,所以我自然同时都在Reviewer和Verifier组中。

 

step2:创建项目组,比如这里是appengine team,将工程师加入其中

 

step3:设置review和verifier权限。为了简单起见,通过Gerrit在All projects的Access中如下设置:

简单文字描述一下:

在refs/* 路径下,添加Reviewer组,权限是Label Code-Review,范围是-2~+2

在refs/* 路径下,添加Verifier组,权限是Label Verifier,范围是-1~+1

 

step4:设置要管理工程的access权限。

将appengine team组加入到refs/for/*路径下,权限为Push.

解释一下,每当工程师通过命令git push直接推送到中心仓库的ref/heades/master的时候,就会失败。只能推送到ref/for/master,等待审批。

 

服务端设置完成后,开始设置客户端。

step5: 设置push的快捷方式

每次敲命令:git push origin HEAD:refs/for/master 是很容易出错的,所以在客户端clone出来的工程目录下.git/config文件中添加一节配置:

  •  [remote "review"]  
  •     pushurl = ssh://wangxd555@10.112.18.189:29418/appengine.git  
  •     push = HEAD:refs/for/master  
  •   
  •     receivepack = git receive-pack --reviewer csfreebird  

这样,以后就可用git push review 来推送。

 

step6: 为了避免一个change被打回来修改后再被当作新的change提交,要使用Gerrit提供的hook脚本

scp -P 29418 -p username@gerrit_server:/hooks/commit-msg .git/hooks

 

现在正常工作吧。

 

THE END