继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

从零搭建 Gerrit 实现 code review

周萝卜
关注TA
已关注
手记 53
粉丝 27
获赞 85

对于经常协作写代码的我们来说,代码审核是我们经常忽略的事情,但是确是非常非常重要的事情,良好的 code review 会为未来项目的维护起到非常大的帮助,今天我们就来搭建一套完整的 code review 环境。

环境搭建

安装 java

首先我们先安装 Java 环境,这个比较简单,我们直接使用 wget 来获取 jdk 安装包

wget https://download.oracle.com/otn-pub/java/jdk/14.0.1+7/664493ef4a6946b186ff29eb326336a2/jdk-14.0.1_linux-x64_bin.tar.gz?AuthParam=1588645745_e0dba871f2a7173ffc391d15713b9bc9

然后解压该文件,并设置环境变量就好,这里要注意你 jdk 包所放置的具体位置,打开环境变量文件
vi /etc/profile

export JAVA_HOME=/opt/jdk-14.0.1
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

测试是否安装成功

java -version
java version "14.0.1" 2020-04-14
Java(TM) SE Runtime Environment (build 14.0.1+7)
Java HotSpot(TM) 64-Bit Server VM (build 14.0.1+7, mixed mode, sharing)

安装 git、httpd 和 nginx

直接通过 yum 安装即可

yum install git
yum install httpd
yum install nginx

安装 gerrit

到 gerrit 官网下载安装包

下载完成后,执行命令行安装,可以一路回车,因为所有的配置都可以通过配置文件来修改

adduser gerrit -m
su - gerrit
java -jar gerrit-2.15.18.war init -d /home/gerrit/gerrit
# 设置admin密码
htpasswd -c -m passwords admin

当然,我们为了方便起见,可以使用 development_become_any_account 模式来进行鉴权,这样就不需要通过 HTTP 的方式来鉴权访问了。

现在我们直接访问 http://IP:8080 就可以访问到 gerrit 服务器了,当然也可以使用上面安装好的 HTTP 代理服务器来访问,这个就大家自行研究啦。

环境配置

配置 gerrit

我们先通过 admin 用户创建一个 project,名字叫做 test1,然后在登录页面注册一个测试的普通账号,叫做 zw,然后把我们本地(需要使用 git 操作的机器)上的 id_rsa.pub 中的 ssh key 放到 gerrit 中

在 settings-> SSH Public Keys 中添加

接下来我们就可以在本地尝试 ssh 登录了

ssh zw@gerritIP -p 29418

如果出现以下信息,则表明 ssh 配置成功

****    Welcome to Gerrit Code Review    ****

  Hi zw, you have successfully connected over SSH.

  Unfortunately, interactive shells are disabled.
  To clone a hosted Git repository, use:

  git clone ssh://zw@*.*.*.*:29418/REPOSITORY_NAME.git

接下来我们使用 git clone 来克隆刚刚创建的 test1 仓库即可

再执行如下两条命令

gitdir=$(git rev-parse --git-dir); scp -p -P 29418 zw@47.105.185.84:hooks/commit-msg ${gitdir}/hooks/

git commit --amend

验证 gerrit

我们创建一个文件,名为 test.py,然后执行如下命令

touch test.py
git add .
git commit -m 'first commit'
git push origin HEAD:refs/for/master

出现如下信息则表明成功

Counting objects: 3, done.
Writing objects: 100% (3/3), 269 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Processing changes: new: 1, done    
remote: 
remote: New Changes:
remote:   http://*.*.*.*:8080/#/c/test1/+/2 first
remote: 
To ssh://*.*.*.*:29418/test1.git
 * [new branch]      HEAD -> refs/for/master

然后我们使用 admin 用户登录 gerrit web 端,就可以看到刚刚提交的请求了

gerrit 权限设置

现在提交的Review请求只有Code Rivew审核,如果我们要求Verified和Code Review双重保障,那么需要在 Projects 的 Access 栏里,针对 Reference: refs/heads/ 项添加 Verified 功能,如下如下:
Projects -> List -> All-Projects
Projects -> Access -> Edit -> 找到 Reference: refs/heads/* 项 -> Add Permission -> Label Verified -> Group Name 里输入 Non-Interactive Users -> 回车 或者 点击Add 按钮 -> 在最下面点击 Save Changes 保存更改。

同时还要给 register user 增加 submit 和 Label Code-Review 权限,添加方法同上。

如上配置完成后,有审核权限的用户就可以审核代码,并 submit 了。

至此,我们 gerrit 的配置基本就结束了,我们提交的代码,必须要人工审核才能够正常提交到代码库当中

后面,我们再来看看如何通过与Jenkins结合,来实现自动化的代码审核

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP