自動提交Git branch代碼評審到Review Board系統

背景

敏捷軟件開發中,越小的反饋環,意味着軟件質量越容易獲得保證。python

做爲組件團隊,咱們的開發任務中,每每存在一些特性涉及到幾十個功能點,開發週期持續數週或數月的狀況。如何在開發過程當中保證軟件質量,是個很重要的話題。進行有效的細粒度的代碼評審,是常見的手段之一。可是這一但願在落地時,多多少少會遇到些來自方方面面的阻力:git

Review Board不支持Git branch的代碼評審提交;github

Git不熟,不知道怎麼生產正確的patch文件來提交到Review Board上;bash

Review Board不會用,不知道怎麼提交代碼評審;服務器

Review Board會用,可是提交過程繁瑣,一兩天就要提交一次,我怕麻煩;工具

我忘提交了代碼評審了post

團隊的痛點就是咱們努力改進的方向,咱們但願有一套方案,能實現代碼評審的自動提交,提交過程對開發人員透明,最大程度上減輕開發人員的心智負擔,讓開發人員專一於功能開發上。url

實際上,這個自動化工具和實現方案已經有了,這就是本文分享的RBTool官網的用戶手冊有詳細的文檔說明,美中不足的是,沒有提供一個完整的實施案例給用戶參考,本文嘗試填補這一塊空白,疏漏之處,還望指正。spa

安裝

本文主要關注Review Board代碼評審自動提交的方案實施上,因此假設你已經有了一臺可用的Review Board(後文以RB簡稱)服務器。RB服務器的安裝、配置、使用不在贅述。日誌

部署環境:

alex@alex-desktop:~/git/team_dev$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 10.04.3 LTS
Release:        10.04
Codename:       lucid

安裝RBTool:

若是你的計算機能訪問外網,安裝過程很簡單:

sudo easy_install -U RBTools 

 

若是不能訪問外網,須要手動下載以下安裝包,並依次解壓、運行 sudo python setup.py install 進行安裝。

https://pypi.python.org/packages/source/a/argparse/argparse-1.4.0.tar.gz

https://pypi.python.org/packages/source/s/six/six-1.8.0.tar.gz

https://pypi.python.org/packages/source/R/RBTools/RBTools-0.7.5.tar.gz

運行以下命令,查看是否安裝成功:

alex@alex-desktop:~/git/team_15000_dev$ rbt -v
RBTools 0.7.5

 

配置

配置git選項reviewboard.url爲你的RB服務器訪問連接:

git config --global  reviewboard.url http://XXX.XXX.XXX.XXX/

 

在你的git工做區目錄下,建立RBTool的配置文件.reviewboardrc,示例以下(我的信息以XXX代替)

alex@alex-desktop:~/git/team_dev$ cat .reviewboardrc 
REPOSITORY = "XXX"
REVIEWBOARD_URL = "http://XXX.XXX.XXX.XXX/"
USERNAME = "XXX"
PASSWORD = "XXX"
TARGET_GROUPS = "CalabashBro"
TRACKING_BRANCH = "origin/XXX"

 

Repository:指定RB服務器中已經配置的repository倉庫名;

REVIEWBOARD_URL:指定RB服務器訪問連接;

USERNAME:指定RB服務器的用戶登陸名;

PASSWORD:指定RB服務器的用戶登陸密碼;

TARGET_GROUPS:指定代碼評審Review request的Groups;

TRACKING_BRANCH:指定工做分支;若不指定,默認爲origin/master分支;(適用於Git)

 

配置Git commit鉤子腳本(如不須要自動提交代碼評審功能,此步能夠跳過):

alex@alex-desktop:~/git/team_dev/.git/hooks$ touch post-commit

alex@alex-desktop:~/git/team_dev/.git/hooks$ chmod +x post-commit

alex@alex-desktop:~/git/team_dev$ cat .git/hooks/post-commit
#!/bin/sh

rbt post -g -p

參數解釋:

 -g:根據git commit日誌自動構造RB Review request的summary信息和description信息;

-p:自動構造和發佈;如未指定,會構造一個RB Review request頁面,但不會發布。

應用

若是配置了Git commit鉤子腳本,commit代碼時,就會自動觸發提交一條RB Review request:

alex@alex-desktop:~/git/team_dev$ git commit -m 'Demo: auto to submit RB review request'
Review request #6140 posted.

http://10.46.74.230/r/6140/
http://10.46.74.230/r/6140/diff/
[gaoyun d461499] Demo: auto to submit RB review request
 2 files changed, 6 insertions(+)

 自動提交的RB Review request截圖:

若是沒有配置Git commit鉤子腳本,也能夠在commit後,利用rbt手動提交RB Review request,好比:

指定REVISION的修改記錄提交代碼評審:

rbt post REVISION

指定(STARTREV,STOPREV]區間的修改記錄提交代碼評審:

rbt post STARTREV STOPREV

把當前未push的修改更新到已提交的代碼評審請求中:

rbt post -r REVIEW_REQUEST_NUM

其餘命令請參照官網的用戶手冊

祝玩的開心。

--EOF--

相關文章
相關標籤/搜索