从零搭建 Gerrit 实现 code review

简介: 从零搭建 Gerrit 实现 code review

对于经常协作写代码的我们来说,代码审核是我们经常忽略的事情,但是确是非常非常重要的事情,良好的 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 官网下载安装包

https://www.gerritcodereview.com/

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

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结合,来实现自动化的代码审核

相关文章
|
JavaScript 前端开发 安全
15个最佳的代码评审(Code Review)工具
  代码评审可以被看作是计算机源代码的测试,它的目的是查找和修复引入到开发阶段的应用程序的错误,提高软件的整体素质和开发者的技能。代码审查程序以各种形式,如结对编程,代码抽查等。在这个列表中,我们编制了15个最好的代码审查工具,这将有助于开发者节省代码审查时间。
4191 0
|
25天前
|
前端开发 JavaScript 数据安全/隐私保护
idea代码review工具Code Review Helper使用介绍
CodeReview IDEA 插件是一款用于代码审查的工具,旨在解决在GitLab中查看整体业务逻辑的不便。该插件提供快速添加注释、行号旁的评审意见标记、双击跳转到代码、意见删除和修改、内容导出为Excel以及导入等功能。特别地,它支持离线和在线模式,离线模式下,审核者和开发者通过Excel文件交换评审意见;在线模式则通过服务端实现评审内容的上传和下载,简化文件传输。此外,该插件允许定制评审字段,并能与团队协作工具集成。通过这些特性,CodeReview IDEA 提高了代码审查的效率和便捷性。
76 2
|
3月前
|
Java 测试技术 p3c
我们如何做Code Review
我们如何做Code Review
32 0
|
12月前
|
监控 算法 程序员
大厂怎么做Code Review?
发现坏味道的实践,就是Code Review:对计算机源代码系统化地审查,常用软件同行评审的方式进行,其目的是在找出及修正在软件开发初期未发现的错误,提升软件质量及开发者的技术
192 0
|
小程序 开发工具
IDEA中——Code Review Helper的安装和使用
IDEA中——Code Review Helper的安装和使用
682 0
IDEA中——Code Review Helper的安装和使用
|
设计模式 算法 Java
code review
也不知code review是从哪年开始流行的,我的职场经历从刚开始完全没有到1对1,再到团队式review
171 0
code review
|
Java jenkins 应用服务中间件
从零搭建 Gerrit 实现 code review
对于经常协作写代码的我们来说,代码审核是我们经常忽略的事情,但是确是非常非常重要的事情,良好的 code review 会为未来项目的维护起到非常大的帮助,今天我们就来搭建一套完整的 code review 环境。
|
开发框架 安全 IDE
|
缓存 算法 安全
代码评审(Code Review)
代码评审(Code Review)
553 0