ubuntu14 搭建gerrit服務器及使用說明

Gerrit安裝使用指導

 

 

 

簡介:本指導主要分三部分組成,一是Gerrit的安裝配置,二是本地git的修改提交到Gerrit倉庫,三是代碼審查說明。

 

 

 

一、依賴組件

Gerrit依賴的組件主要有以下四個:

 

1、        jdk    --Gerrit主要由java實現其功能,所以需要jdk支持;

sudo apt-get install openjdk-7-jdk

查看版本java -version

2、        mysql    --Gerrit審查過程中存儲信息的數據庫,Gerrit本身自帶H2數據庫一般不用;

安裝mysql

sudo apt-get install mysql-server

sudo apt-get install mysql-client

sudo apt-get install libmysqlclient-dev

3、        Apache2    --主要用到其反向代理功能;

sudo apt-get install apache2

  1.    Gerrit本身相當於是一個Git服務器。

wget https://gerrit-releases.storage.googleapis.com/gerrit-2.12.war

 

  • gerrit安裝

 

  1. 添加gerrit用戶

sudo adduser gerrit

sudo passwd gerrit

並將gerrit加入sudo權限

vim /etc/sudoers

增加gerrit  ALL=(ALL:ALL) ALL

 

  1. 安裝gerrit 到/home/gerrit/review

java -jar gerrit-2.12.4.war init --batch -d ~/review

 

3、配置gerrit   vim /home/gerrit/review/etc/gerrit.config

 [gerrit]

        basePath = git

        #basePath = /home/git/repositories

        canonicalWebUrl = http://192.168.7.209:8080/

[database]

        type = h2

        database = /home/gerrit/review/db/ReviewDB

[index]

        type = LUCENE

[auth]

        type = HTTP

[receive]

        enableSignedPush = false

[oauth]

        allowEditFullName = true

        allowRegisterNewEmail = true

[sendemail]

        #smtpServer = localhost

        enable = true

        smtpServer = smtp.qiye.163.com

        smtpServerPort = 465

        smtpEncryption = SSL

        sslVerify = true

        smtpUser = [email protected]

        smtpPass = xxx

        from = [email protected]

[container]

        user = gerrit

        javaHome = /usr/lib/jvm/java-7-openjdk-amd64/jre

[sshd]

        listenAddress = *:29418

[httpd]

        listenUrl = http://*:8081/

[cache]

        directory = cache

 

  • 配置apache2反向代理

1、配置監聽端口

vim /etc/apache2/ports.conf

Listen 80

Listen 808

2、配置反向代理:

cd /etc/apache2/sites-available/

sudo ln -s ../sites-available/000-default.conf

Vim 000-default.conf配置如下

 

<VirtualHost *:8080>

    ServerName 192.168.7.209

    ProxyPreserveHost On

    ProxyRequests Off

    <Proxy *>

        Order deny,allow

        Allow from all

    </Proxy>

    <Location />

      AuthType Basic

      AuthName "Welcomme to Gerrit Code Review Site!"

      Require valid-user

      AuthUserFile /etc/apache2/passwords

    </Location>

    ProxyPass / http://192.168.7.209:8081/

    proxyPassReverse / http://127.0.0.1:8081/

 

    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log

    CustomLog ${APACHE_LOG_DIR}/access.log combined

 

</VirtualHost>

 

 

3、需要WEB訪問的話,使用htpasswd,htpasswd命令是Apache的Web服務器內置工具,用於創建和更新儲存用戶名、域和用戶基本認證的密碼文件。

cd /home/gerrit/review

touch /home/gerrit/review/passwords

htpasswd -b /etc/apache2/passwords admin 123456(管理員)

htpasswd -b /etc/apache2/passwords gerrit 123456

 

4、開啓反向代理

cd /etc/apache2/mods-enabled
sudo ln -s ../mods-available/proxy.load

sudo ln -s ../mods-available/proxy.conf

sudo ln -s ../mods-available/proxy_http.load

sudo ln -s ../mods-available/proxy_balancer.conf

sudo ln -s ../mods-available/proxy_balancer.load

sudo ln -s ../mods-available/rewrite.load

sudo ln -s ../mods-available/ssl.conf

sudo ln -s ../mods-available/ssl.load

 

  1. 重啓服務

sudo /home/gerrit/review/bin/gerrit.sh restart

sudo /etc/init.d/apache2 restart

 

  1. 訪問gerrit 管理界面 http://192.168.7.209:8080/

 

 

 

、使用gerrit

 

1.1 賬號密碼

 

從管理員處獲取賬號密碼後,登錄Gerrit:http://192.168.7.209:8080/

 

1.2修改名字和郵箱

 

 

如郵箱爲xxxx@four-faith.com,則“Full Name”填寫爲xxxx:

 

註冊郵箱:註冊成功後會給郵箱發送一封郵件,點擊鏈接進行驗證(如果某些瀏覽器無法打開驗證鏈接,複製到IE上打開):

 

 

1.3 添加用戶

 

linux下的用戶名須和管理員給的Gerrit賬號名相同,如果沒有,請添加新用戶:

root@BuildHost:~# adduser gerrit

 

 

1.4 添加ssh密鑰

備份.ssh(如果存在的話):

 

生成密鑰:

rm -rf ~/.ssh

ssh-keygen -t rsa -C “自己郵箱地址”   ###一直按回車鍵即可

 

然後公鑰添加到Gerrit:

把 ~/.ssh/id_rsa.pub 內容複製好

 

粘貼到

 

2.1 下載代碼

正確配置好郵箱和ssh公鑰後,根據Gerrit管理員給出的地址下載代碼:

git clone http://192.168.7.209:8080/test_gerrit.git

git clone ssh://[email protected]:29418/test_gerrit.git

 

2.2 下載commit-msg腳本

【重要:使用Gerrit必須要有此腳本】

提交前在本地倉庫執行

gitdir=$(git rev-parse --git-dir); scp -p -P 29418 [email protected]:hooks/commit-msg ${gitdir}/hooks/

 

git commit --amend

 

 

2.3提交代碼審覈

Gerrit不允許用戶直接push代碼到分支上(特別授權用戶除外),否則報錯:

 

正確的做法是所有提交都push到 HEAD:refs/for/分支名 :

格式如:git push origin HEAD:refs/for/分支名

例1:

當前處於本地分支master 

 

代碼提交到遠程分支master上,則:git push origin HEAD:refs/for/master

 

例2:

當前處於本地分支developer

 

代碼提交到遠程分支deleloper上,則: git push origin HEAD:refs/for/developer

 

2.4 添加審覈者

代碼正確提交到分支 refs/for/* 後,需要登錄Gerrit界面爲剛纔的提交添加相應的審覈者:

 

登錄Gerrit:http://192.168.7.209:8080/, 在“changes”下可以看到剛剛的提交,名稱顯示爲剛剛提交所寫的註釋

 

 

點擊進入,在“Need Code-Review”下添加相應的代碼審覈者(請根據自己項目情況添加指定的審覈者,此處僅作演示)

 

如果審覈通過,會收到提示郵件(Code-Review爲正數,說明審覈通過,但代碼未合入分支):

 

 

代碼被合入後,會收到郵件提示(說明代碼已經正確提合入到分支):

 

2.5 審覈失敗再提交

當收到審覈失敗的郵件時(Code-Review爲負數,需要記下Change-Id,下一步提交時會用上),需要修改代碼重新提交:

 

修改好代碼後,重新提交代碼:

【重要:代碼審覈失敗後,重新提交時必須使用 git commit –amend,否則會生成新的評審任務,無法與上一次審覈任務關聯】

 

【重要:註釋可以重新寫,但是其中“Change-Id”必須爲上一次審覈任務失敗的Change-Id,可在Gerrit或者上一步的郵件中查看得到】

 

 

 

再push代碼到Gerrit:

 

最後無需重複步驟“3.3 提交代碼審覈”,Gerrit會自動給原來的審覈者發送相應郵件

  

3.1 收到審覈郵件

 

當有審覈任務郵件時,點擊鏈接打開Gerrit

 

3.2 查閱審覈任務

打開審覈任務如下:

 

3.3 添加其他審覈者

如果需要,這裏可以添加其他人員審覈(需要有審覈權限)

 

3.4 查看修改內容

點擊“Side-by-Side”按鈕,查看修改內容:

 

點擊“next”查閱下一項修改:

 

3.5 審覈通過/失敗

點擊“Review”

 

審覈通過:

 

審覈失敗:

 

代碼提示被blocked:

 

 

 

 

 

 

 

Java SDK Download: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

Gerrit Code Review - Releases Download: https://gerrit-releases.storage.googleapis.com/index.html

Gerrit Code Review -  Quick get started guide: https://git.eclipse.org/r/Documentation/install-quick.html

Gerrit代碼審覈服務器搭建全過程 http://blog.csdn.net/ganshuyu/article/details/8978614

Gerrit代碼審覈流程 http://www.worldhello.net/gotgit/images/gerrit-workflow.png

Gerrit代碼審覈原理 http://www.worldhello.net/gotgit/05-git-server/055-gerrit.html

Gerrit代碼審覈權限管理 https://gerrit-review.googlesource.com/Documentation/access-control.html#category_forge_committer

Gerrit修改數據庫email信息 http://www.cnblogs.com/kevingrace/p/5624122.html

Gerrit安裝replication插件 https://gerrit-review.googlesource.com/Documentation/cmd-plugin-install.html

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章