【Gerrit】Gerrit在Windows系統下的安裝

會飛的小熊發表於2018-02-05

該過程基礎官方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.其他

  1. Gerrit中自帶專案All-project,所有專案繼承該專案的許可權。
  2. Gerrit獲取程式碼方式:

    git clone ssh://gerrithost:29418/RecipeBook.git RecipeBook複製程式碼

  3. Gerrit為了保證程式碼的審查,每次commit需要生成change-Id。可以使用Gerrit自帶的鉤子,需要在原生程式碼庫中執行以下命令:

    scp -p -P 29418 john.doe@review.example.com:hooks/commit-msg .git/hooks/複製程式碼

  4. Gerrit預設不向使用者開放直接合併到程式碼庫的許可權。假設想合入程式碼到master分支,需要推送到魔法分支refs/for/master,經過審查後才能合入程式碼庫。

    git push origin HEAD:refs/for/master複製程式碼


相關文章