下面介紹如何創建Gerrit用戶,並使用用戶登錄已經改配用戶設定
環境:
Gerrit Server:172.16.206.133
Client:172.16.206.129
1、在Gerrit服務器上創建用戶
Gerrit服務器使用的是HTTP認證類型,並用httpd做反向代理,創建用戶使用以下命令
#cd /home/gerrit2/gerrit/etc
[root@localhost etc]# htpasswd -m passwords user2
New password:
Re-type new password:
Adding password for user user2
根據提示輸入密碼即可(密碼設置為123456),這樣賬號就創建好了。創建完成,httpd和gerrit服務不需要重啟。
2、登錄gerrit用戶
用創建的user2賬號訪問gerrit,在瀏覽器地址欄輸入:
輸入登錄的賬號密碼,賬號為user2,密碼為123456
3、修改gerrit用戶配置
登錄后,在網頁右上角點擊自己的用戶名,在點擊“settings”。
settings中就是用戶的配置相關信息,需要注冊郵箱和提交服務器上的公鑰
1、提交公鑰
注意:為什么要提交公鑰文件到gerrit服務器?如果不提交公鑰,則不能使用git push命令將本地代碼提交到gerrit服務器。公鑰是一個認證方式。
在客戶端172.16.206.129這台服務器上創建公、私鑰對,具體命令如下:
生成的密鑰文件如下:
[user2@host2 ~]$ ls .ssh/
id_rsa id_rsa.pub
id_rsa.pub為公鑰文件,將該文件中的內容,復制並粘貼到settings==>SSH Public Keys中,並點擊Add
測試SSH key是否提交成功,在client 172.16.206.129服務器上執行以下命令:
#ssh -p 29418 user2@172.16.206.133
29418為gerrit上SSH服務器監聽的端口,user2為登錄的gerrit賬號,注意這里我們使用哪個賬號登錄gerrit就使用哪個賬號測試,並且該賬號已經登錄了gerrit服務器,而且公鑰已經上傳。172.16.206.133為gerrit服務器的IP
可以看到連接成功,說明SSH Public Key上傳成功。
為user2注冊郵箱
點擊Register后,登錄你剛才注冊的郵箱,激活即可。
4、創建用戶組並創建一個項目
注意,只有管理員組的用戶才能創建group和Project
登錄Gerrit管理員賬號admin,創建一個新的組為group2。並將user2賬號加入該組
新建一個Project,名為Project2
5、gerrit代碼審核流程
前面都是准備工作,接下來演示gerrit如何做代碼審核的
a、client server( 172.16.206.129)的git初始配置
配置用戶名和郵箱
#git config --global user.name "user2"
#git config --global user.email "YOUR EMAIL-ADDRESS"
b、用賬戶user2登錄gerrit
在Projects==> List中找到Projects2,然后點擊Clone with commit-msg hook, 在點擊ssh按鈕,
復制ssh下面項目地址:
直接將剛才復制的命令,在client server的命令行運行
注意:步驟b一定選Clone with commit-msg hook下面的地址來clone,否則在客戶端使用git push
命令提交代碼時會報錯。如果不需要向gerrit服務器提交代碼,那么你只需使用
git clone ssh://user2@172.16.206.133:29418/Project2
或者git clone http://user2@172.16.206.133:8081/a/Project2
c、創建一個文件,並提交到gerrit服務器端
用git add 和git commit命令將文件保存到git倉庫中
d、用git push命令將代碼從本地傳到gerrit服務器對象項目下的master分支
origin:遠程倉庫的名稱,用git remote 可以查看所有的遠程倉庫名稱
e、用user2賬號登錄Gerrit Web UI,邀請管理員admin來做code review。
注意:之前忘記截圖了,所以下圖不是原圖,但是基本上都一樣,只有Owner和Project不對而已。
Add:添加指定用戶來進行Code Review
Cherry Pick:切換分支,當執行push操作之后如果發現分支不對,需要切換,可以在這里點擊Cherry Pick按鈕進行分支切換操作。
Abandon:撤銷push操作,當push之后,如果發現代碼有問題,需要修改,可以點擊這個按鈕,然后修改代碼,修改完成后,再次push,然后登陸Gerrit Web UI,會有一個Restore按鈕,這時候點擊Restore,就可以重新申請Code Review。
e、看看Gerrit服務器上是否有code review的信息
登錄gerrit管理員賬號admin,在ALL下面點擊“Open”,看到“創建了test.sh”這條記錄。
這里“創建了test.sh文件”就是git commit -m "創建了test.sh文件" 這條命令產生的
點開這條記錄,看到以下信息
我們可以點開test.sh文件看到里面的內容
還可以看到提交者的信息:
這里顯示的用戶名和郵箱地址其實是在client server上初始化git時,用以下命令配置的
#git config --global user.name "user2"
#git config --global user.email "YOUR EMAIL-ADDRESS"
點擊上上圖中的code review和replay進行代碼審核
-2 表示不通過,+2表示代碼ok可以通過審核,目前還沒有深究這個,我理解的就是這樣子的。
審核后可以看到審核的日志
以上就是gerrit代碼審核的流程,gerrit倉庫是純粹的代碼倉庫,不存在work tree這個說法。所以在gerrit倉庫里面執行git命令都會報錯:
但是,如果用git clone將gerrit倉庫里面的項目clone下來后,就自動變成了一個git倉庫。