摘要
本文部分内容来源于网络,个人收集整理,请勿传播
gerrit安装过程还是很简单的,虽然个人感觉web界面以及操作体验非常不爽,而且国内也欠缺靠谱的使用文档,但是gerrit的review、代码审核功能还是有很多团队需要的,因此安装配置、以及后续的管理还是需要的。
由于本人的工作接触到了gerrit,所以才有了这篇文章。
本文部分内容取自网络,由本人整理并通过真实安装过程记录撰写而成
简介
gerrit的工作模式是所有真正的merge由gerrit负责,我们的提交只是提交给了gerrit,gerrit会通知项目的负责人来审核 代码,同时也会调用一些自动化测试构建工具来检查代码是否符合要求,只有都通过后才会的合并进主干代码。所以可以把gerrit看成是代码和提交者之间的一道门。
环境搭建
Jdk安装
1 | # 卸载yum安装的java |
mysql安装
生产环境尽量还是使用源码安装的新版本mysql,本文为了方便采取yum安装的方式
1 | yum install -y mysql mysql-devel mysql-server |
mysql我使用编译安装的5.5版本gerrit会报错,使用yum安装的5.1没问题,没有深究原因
gerrit安装
添加gerrit用户
1 | adduser gerrit2 |
我使用gerrit用户安装一直不成功,使用gerrit2用户没问题
安装git
1 | yum install -y git |
安装gerrit
1 | # 需要用到的包 |
安装过程
1 | Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore |
最后能看到gerrit启动了才算正常,如果没有启动就是失败了
配置gerrit
gerrit配置文件
1 | cat review_site/etc/gerrit.config |
安装配置nginx
这里nginx也是为了方便直接yum安装,生产环境建议编译安装
1 | yum install nginx -y |
1 | cat vhost/gerrit.conf |
创建密码验证文件
1 | yum install httpd -y |
访问测试
1 | http://127.0.0.1:8003/gerrit |
后续配置
gitweb
1 | yum install gitweb -y |
权限设置
新增两个用户
1 | htpasswd -b /etc/nginx/gerrit2.passwd test3 123456 |
创建用户组
用户组添加用户
创建项目
创建项目分支
配置项目权限
开发者配置
1 | git clone ssh://test2@10.0.0.136:29418/test && scp -p -P 29418 test2@10.0.0.136:hooks/commit-msg test/.git/hooks/ |
gerrit-hooks配置
gerrit在git的hooks基础上做了一些个性化的修改,并且新增了一些属于自己的hooks文件,想要使用hooks需要在安装gerrit的时候选则安装hooks;
并且hooks需要放到$site_dir/hooks目录下,针对本文就是(/home/gerrit2/review_site/hooks);
如果成功安装了hooks登录管理员账号是可以看到的,如果没安装,建议重装gerrit,因为我也不知道怎么单独安装hooks,建议自行尝试;
本节内容暂时只讲解gerrit众多hooks中的一种,因为我暂时只用了这一种;
其他和git相同的hooks请看另一篇文章git-hooks(钩子):自定义你的工作流;
change-merged
这个hooks的功能是开发者push代码之后,需要审核人进行审核,当审核人审核通过之后,也就是submit之后,就会触发的一个hooks,一般用来做一些发邮件的通知工作,而本文是为了用来将指定分支的代码合并到另一个分支(后续可能会更新一个纯python的版本)。
1 | # pwd |
change-merged
1 | # change-merged |
change-merged.d/config.env
1 | # change-merged.d/config.env |
smail.py
1 | # smail.py |
change-merged.d/mypro/config.env
1 | # change-merged.d/mypro/config.env |