該過程基礎官方2.14.6版本,文件連線:gerrit-documentation.storage.googleapis.com/Documentati…
前期工作:
- 安裝java執行環境,推薦1.8版本
- 安裝git,Gerrit是基於git版本管理工具開發的程式碼審查工具
- 安裝資料庫,可選。Gerrit預設使用內建H2資料庫,其他可選資料庫見官方安裝文件
- 安裝nginx,進行反向代理,可選。如果Gerrit使用http方式,需要伺服器新增header內容。參考配置:
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { #監聽80埠 listen *:80; server_name localhost; allow all; deny all; auth_basic "Welcomme to Gerrit Code Review Site!"; #http模式下gerrit的使用者檔案,詳情見下文 auth_basic_user_file E:\gerrit\etc\gerrit.password; location / { #gerrit的預設埠為8080 proxy_pass http://127.0.0.1:8080; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; } } } 複製程式碼
- 安裝htpasswd,可選。如果Gerrit使用http方式,需要使用該工具生成使用者和密碼。windows系統的安裝版本下載:www.htpasswdgenerator.com/download_ht…
1.下載
Gerrit官方下載連線:www.gerritcodereview.com/releases/2.…
選擇2.16.4版本進行下載,下載檔案為war包。
2.安裝
使用window的shell執行器,切換至下載目錄,執行如下命令:
# /path/to/your/gerrit_application_directory為gerrit的安裝目錄
java -jar gerrit.war init -d /path/to/your/gerrit_application_directory複製程式碼
執行上述命令後,除了Authentication method 需要填寫http,其他可以都按照預設回車即可。
3.配置
開啟Gerrit安裝目錄,進入etc目錄,修改gerrit.config檔案:
[gerrit]
basePath = git
serverId = cafccbde-e040-498f-a861-b910cb7fa3c5
canonicalWebUrl = http://192.168.56.1:8080/
[database]
type = h2
database = E:\\gerrit\\db\\ReviewDB
[index]
type = LUCENE
[auth]
type = HTTP
[receive]
enableSignedPush = false
[sendemail]
# 郵箱配置
smtpServer = smtp.example.com
smtpServerPort = 465
smtpEncryption = SSL
smtpUser = example@example.com
smtpPass = example
from = example@example.com
[container]
user = example
javaHome = C:\\Program Files\\Java\\jdk1.8.0_131\\jre
[sshd]
listenAddress = *:29418
[httpd]
# 注意修改該部分,反向代理配置
listenUrl = proxy-http://*:8080/
[cache]
directory = cache複製程式碼
然後再etc目錄下,執行以下命令,新增使用者(需要安裝htpasswd,並加入path):
# 注意,該檔案目錄需要和nginx中的授權路徑相同
# 建立gerrit.password檔案,新增admin使用者
htpasswd -c gerrit.password admin
# 在gerrit.password檔案中新新增使用者test
gtpasswd gerrit.password test複製程式碼
4.啟動
在Gerrit安裝目錄下執行以下命令:
java -jar bin\gerrit.war daemon --console-log複製程式碼
在nginx中按照“前期工作”編寫配置檔案,如conf/gerrit.conf,執行以下命令:
nginx -c conf/gerrit.conf複製程式碼
待Gerrit和nginx啟動後,在瀏覽器中輸入http://localhost,使用上述建立的使用者登入(第一個登入使用者為管理員使用者)即可。
5.其他
- Gerrit中自帶專案All-project,所有專案繼承該專案的許可權。
- Gerrit獲取程式碼方式:
git clone ssh://gerrithost:29418/RecipeBook.git RecipeBook複製程式碼
- Gerrit為了保證程式碼的審查,每次commit需要生成change-Id。可以使用Gerrit自帶的鉤子,需要在原生程式碼庫中執行以下命令:
scp -p -P 29418 john.doe@review.example.com:hooks/commit-msg .git/hooks/複製程式碼
- Gerrit預設不向使用者開放直接合併到程式碼庫的許可權。假設想合入程式碼到master分支,需要推送到魔法分支refs/for/master,經過審查後才能合入程式碼庫。
git push origin HEAD:refs/for/master複製程式碼