前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从零搭建 Gerrit 实现 code review

从零搭建 Gerrit 实现 code review

作者头像
周萝卜
发布2020-05-22 10:50:23
3K0
发布2020-05-22 10:50:23
举报
文章被收录于专栏:萝卜大杂烩萝卜大杂烩

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

环境搭建

安装 java

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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

测试是否安装成功

代码语言:javascript
复制
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 安装即可

代码语言:javascript
复制
yum install git
yum install httpd
yum install nginx

安装 gerrit

到 gerrit 官网下载安装包

https://www.gerritcodereview.com/

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

代码语言:javascript
复制
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 配置成功

代码语言:javascript
复制
****    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 仓库即可

再执行如下两条命令

代码语言:javascript
复制
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,然后执行如下命令

代码语言:javascript
复制
touch test.py
git add .
git commit -m 'first commit'
git push origin HEAD:refs/for/master

出现如下信息则表明成功

代码语言:javascript
复制
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结合,来实现自动化的代码审核

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 萝卜大杂烩 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境搭建
  • 安装 java
  • 安装 git、httpd 和 nginx
  • 安装 gerrit
    • 环境配置
    • 配置 gerrit
    • 验证 gerrit
    • gerrit 权限设置
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档