Gerrit 是一个基于 Git 的代码管理工具,它提供了一种称为“代码评审”的功能,可以让多个开发人员在合并代码之前对其进行审查和讨论,以确保代码的质量和符合团队的最佳实践。以下是使用 Gerrit 代码评审的一些好处:
- 提高代码质量:代码评审可以帮助发现代码中的潜在问题和缺陷,例如错误、不兼容的库或框架、不良的设计等。通过尽早发现和修复这些问题,可以减少代码错误和缺陷对项目的影响。
- 促进团队合作:代码评审是一种交流和合作的方式,可以让团队成员更好地了解对方的工作,并更好地协作完成项目。通过代码评审,开发人员可以更好地理解其他开发人员的代码,并交流最佳实践和建议,从而提高整个团队的工作效率和代码质量。
- 减少错误合并:在合并代码之前,代码评审可以检查代码是否符合团队的标准和规范,从而避免错误的合并和错误的代码注入。
- 提高代码可读性:代码评审可以帮助开发人员更好地理解代码的结构和设计,从而提高代码的可读性和可维护性。
- 促进代码重构:通过代码评审,开发人员可以及时发现代码中的问题和缺陷,并建议进行代码重构和优化,从而提高代码的性能和可维护性。
这里介绍下使用 Ubuntu平台下 使用 GERRIT + NGINX + HTTP认证的方式 搭建 GERRIT 评审平台。
apt-get update
apt-get install gnupg -y
apt-get install nginx -y procps vim sudo git -y
apt-get install openjdk-11-jdk-headless apache2-utils wget net-tools -y
cd /opt/gerrit
wget https://gerrit-releases.storage.googleapis.com/gerrit-3.7.0.war
nginx 单独配置
nginx -c /etc/nginx/nginx.conf # 设置加载配置文件路径
nginx -s reload # 重新加载NGINX
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys XXXXXXXXXX
cd /opt
mkdir gerrit_project #配置安装路径
java -jar gerrit-3.7.0.war init -d gerrit_project
安装过程中 只要注意 Authentication method方式时选择HTTP,然后最后安装插件的时候注意全部都要安装。
认证处:
Authentication method [HTTP/?]: Y
插件处:
Installing plugins.
Install plugin download-commands version v2.11.3 [y/N]? y
version v2.11.3 is already installed, overwrite it [y/N]? y
Install plugin reviewnotes version v2.11.3 [y/N]? y
version v2.11.3 is already installed, overwrite it [y/N]? y
Install plugin singleusergroup version v2.11.3 [y/N]? y
version v2.11.3 is already installed, overwrite it [y/N]? y
Install plugin replication version v2.11.3 [y/N]? y
version v2.11.3 is already installed, overwrite it [y/N]? y
Install plugin commit-message-length-validator version v2.11.3 [y/N]? y
version v2.11.3 is already installed, overwrite it [y/N]? y
Initializing plugins.
No plugins found with init steps.
配置gerrit.config文件 文件在刚才创建的文件夹下的 etc目录下
[gerrit]
basePath = git
canonicalWebUrl = http://服务器IP:8089/ #修改为自己的服务器地址与端口
serverId = XXXXXXXXXXXXXXXXXXXXXXXXXX # 这里用默认的就行
[container]
javaOptions="Dflogger.backend_factory=com.google.common.
flogger.backend.log4j.Log4jBackendFactory#getInstance"
javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.
logging.LoggingContext#getInstance"
user = gerrit
javaHome = /usr/lib/jvm/java-8-openjdk-amd64/jre
[index]
type = LUCENE
[auth]
type = HTTP
[receive]
enableSignedPush = false
[sendemail]
smtpServer = smtp.163.com #设置163邮箱 其他的邮箱自己设置
smtpServerPort = 465
smtpEncryption = SSL
sslVerify = true
smtpUser = XXXXXXXXXXXX@163.com # smtpUser 和from 保持一致即可
smtpPass = 授权码
from = XXXXXXXXXXXXXXX@163.com
[sshd]
listenAddress = *:29418 #这个是传输端口
[httpd]
listenUrl = proxy-http://*:8089/ #这里注意端口和上面保持一致
[cache]
directory = cache
在刚才创建的文件夹下的bin 文件夹下有 gerrit.sh
./gerrit_project/bin/gerrit.sh restart
创建的第一个用户为超级管理员,后续可通过超级管理员授权
# 第一次创建用户时,使用-c
sudo htpasswd -c /opt/gerrit_project/gerrit.password admin
sudo chmod 755 /opt/gerrit_project/gerrit.password
后续创建其他用户使用 -m
htpasswd -m //opt/gerrit_project/gerrit.password user
/etc/nginx/conf.d/ 路径下
vi gerrit.conf 只修改server部分
server {
listen *:8099; #监听接口
server_name 服务器IP;
allow all;
deny all;
auth_basic "Welcomme to Gerrit Code Review Site!";
auth_basic_user_file /home/gerrit/gerrit.password;
location / {
proxy_pass http:// 服务器IP:8089; # gerrit服务接口
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
}
}
./gerrit.sh restart
nginx -s reload