gerrit 添加用户 clone review 提交流程

张映 发表于 2018-05-30

分类目录: 服务器相关

标签:, ,

吐槽一下,在使用方面,gerrit要比gitlab复杂的。除了代码review功能外,其他的真的没有gitlab好用。希望gerrit越来越好。

1,登录gerrit后台,创建用户组和项目,网上有很多这种手册就不详细说了

2,生成普通用户公钥和私钥

$ ssh-keygen -t rsa

3,配置私钥连接服务器

$ cat ~/.ssh/config   //如果没有这个文件,创建之

Host 192.168.0.12
Hostname 192.168.0.12
User tank
IdentityFile /Users/zhangying/.ssh/tank

这里的User最好根创建的用户一样。

4,登录到linux服务器,创建gerrit用户

$ htpasswd -m /home/gerrit/gerrit_web/etc/passwords tank

-m增加用户,添加完用户后,要重启一起nginx。

5,gerrit后台,将添加的tank用户放到用户组中

6,登录tank账号,添加邮箱,将公钥放到gerrit后台

上面的4,5,6步可以通过一条命令来实现。

$ cat ~/home/tank/.ssh/id_rsa.pub | ssh gerrit gerrit create-account --full-name tank --email tank.zhangying@xxxxx.com --ssh-key - tank

7,clone项目

$ git clone ssh://tank@192.168.0.12:29418/dtutor.git

注意开放29418端口

8,git设置用户名和邮箱

$ git config user.name tank
$ git config user.email tank.zhangying@leoedu.com

不要加global,不然全局的都会变掉。到clone的项目根目录下就行。

用户名和邮箱必须和添加的用户名和邮箱一样。不然会报以下错误。

MacBook-Pro:mytest zhangying$ git push
Counting objects: 3, done.
Writing objects: 100% (3/3), 280 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Processing changes: refs: 1, done
remote:
remote: ERROR: In commit 3d4f444de7ec17549812a30550ca286fc30bd0c8
remote: ERROR: committer email address zhangying@zhangyingdeMacBook-Pro.local
remote: ERROR: does not match your user account and you have no 'forge committer' permission.
remote: ERROR:
remote: ERROR: The following addresses are currently registered:
remote: ERROR: tank.zhangying@xxxx.com
remote: ERROR:
remote: ERROR: To register an email address, please visit:
remote: ERROR: http://gerrit.xxxx.com/#/settings/contact
remote:
remote:
To ssh://192.168.0.12:29418/dtutor.git
! [remote rejected] master -> refs/for/master (invalid committer)
error: failed to push some refs to 'ssh://tank@192.168.0.12:29418/dtutor.git'

9,gerrit拒绝直接提交代码到master

$ git config remote.origin.push refs/heads/*:refs/for/*

将代码提交到当前分支的head分支下,等代码审核后,由审核人员决定是否merge到master分支。

到这儿,用户就可以提交代码了。

10,commit msg copy到本地项目中

$ git rev-parse --git-dir  //查看当前项目,git配置目录
$ scp -p -P 29418 tank@192.168.0.12:hooks/commit-msg .git/hooks/

11,设置watched projects

gerrit后台=》people=》右上角自己的名字点击=》settings=》左边导行选择watched projects=》查找project=》选择关注的项目=》把相关的复选框全选上

开发人员,code review人员,审核人员都要进行这步操作。

12,项目用户组权限设置

gerrit项目用户权限设置

gerrit项目用户权限设置

上图添加了4个权限,read,label code-review,label verified,submit,每个权限对应不同的,用户组。不要个性all project的默认权限,不然所有项目都会被改变。

13,tank提交提交代码,然后代码review人员,审核人员登录后台都通过后,代码就会merged到master分支了。

gerrit代码提交,审核,发布到master分支

gerrit代码提交,审核,发布到master分支



转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/server/1930.html

3 条评论

  1. 赵丽萍 留言

    你好,请问为什么我的Access里面,没有Lable Verify这个权限的配置,Code Review +2时就可以直接Submit了,为什么不需要Verify这个过程,是gerrit的版本不同界面不一样吗,我的是2.15版。

  2. 张映 留言

    点 add permission里面肯定有,还有我用的也是2.15

  3. 赵丽萍 留言

    我这确实没有那个权限,我的界面没有出现过Verify这个单词