天天看點

代碼審查工具 phabricator 使用學習

phabricator 線上文檔:

https://secure.phabricator.com/book/phabricator/

diffusion 基本說明

https://secure.phabricator.com/book/phabricator/article/diffusion/

Repository 分類說明以及如何導入一個已存在的代碼倉庫

https://secure.phabricator.com/book/phabricator/article/diffusion_uris/

檢視或導入已存在的代碼倉庫

https://secure.phabricator.com/book/phabricator/article/diffusion_existing/

配置由 phabricator 托管的代碼倉庫

https://secure.phabricator.com/book/phabricator/article/diffusion_hosting/

review 與 audit 的區分

https://secure.phabricator.com/book/phabricator/article/reviews_vs_audit/

arcanist 快速安裝

https://secure.phabricator.com/book/phabricator/article/arcanist_quick_start/

arcanist 基本使用說明

https://secure.phabricator.com/book/phabricator/article/arcanist/

https://secure.phabricator.com/book/phabricator/article/arcanist_diff/

Differential 基本使用說明

https://secure.phabricator.com/book/phabricator/article/differential/

Audit 基本使用說明

https://secure.phabricator.com/book/phabricator/article/audit/

Inline Comments 作用說明

https://secure.phabricator.com/book/phabricator/article/differential_inlines/

Herald 規則引擎配置說明

https://secure.phabricator.com/book/phabricator/article/herald/

強制執行 Code Review --建立 Herald 規則

https://www.jianshu.com/p/b1a75a14638c   

post-push code review workflow(Audit):

1、開發人員送出代碼到代碼庫,系統根據 Herald 設定規則向特定人員發送審查申請(Audit Request);

2、審查人員收到審查申請,通過 Open Audits 檢視送出的變更内容,如果發現問題,可通過添加評論的方式并以"Raise Concern"向開發人員回報回去;

3、開發人員收到回報郵件,登入到 phabricator 檢視回報内容,然後修改代碼後再次送出,并且以"Request Verification"通知審查人員再次審查;

4、審查人員确認修改無誤後,使用"Accept Commit"關閉本次審查工作流;

pre-push code review workflow(Differential):

1、開發人員 author 在自己機器上開發好代碼,通過本機安裝的 arcanist 工具推送變更内容(arc diff)到 phabricator 系統的 Differential 面闆中,等待 reviewer 審查代碼。此時,代碼還沒有正式送出到代碼庫;

2、審查人員 reviewer 收到 phabricator 自動發送的審查請求郵件;

3、審查人員 reviewer 在 Differential 中審查變更的代碼,可以選擇稽核通過,或者标注出有問題的代碼,要求開發人員 author 重新修改;

4、開發人員 author 修複bug後再次送出審查,如此反複,直到審查通過;

5、一旦稽核人員審查通過,确認接受變更(accepted),則開發人員可以将代碼最終送出(arc commit)到代碼庫svn中;

若要支援 pre-push 工作流,代碼倉庫必須由 phabricator 自己托管。

phabricator 暫僅支援通過 SSH 協定對 SVN 進行代碼托管。

已經存在的 svn 代碼庫如果要支援 pre-push 工作流,隻能将現有的 svn 代碼庫遷移(svnsync)或實體拷貝到 phabricator 托管的代碼庫才能使用。