概覽
Phabricator支持兩種代碼審查工作流:“review”(提交前審查)和 “audit”(提交後審查)。
這篇文檔概述了通過Audit工具實現提交後審查流程。
Audit如何工作
使用審核工具允許提交和部署代碼,而無需等待代碼審查結果,雖然最終還是會進行代碼審查。Audit工具主要跟蹤兩件事:
-
代碼提交(Commits),以及它們的審核狀態(譬如“未經審核(Not Audited)”、“認可(Approved)”、“引發擔憂(Concern Raised)”)。
-
審核請求(Audit Requests)。審核請求提醒用戶去審核一次提交。它有多種觸發方式。(可見“審核觸發器”一節)
在審核工具的主頁(位於/audit/)或者phabricator首頁可以看到代碼的提交和需要你審核的審核請求。如下圖所示。
-
必要的審核(Required Audits)。當你是某個項目的成員,或者是一個包的擁有者,Required Audits提示你去審核一次提交。當你認可這次提交時,審核請求會被關閉。
-
問題提交(Problem Commits)。是指有人在審核過程中對你提交的代碼表示擔憂。當你消除了他們的疑慮並且所有審核人均對代碼表示認可時,問題提交將會消失。
舉例
-
翠花進行了一次代碼提交
-
鐵蛋接收到審核請求
-
過了一陣兒,鐵蛋登錄Phabricator並在首頁看到審核請求
-
鐵蛋檢查翠花提交的代碼。他發現代碼中的一些問題,之後他選擇了“引發擔憂”選項,並且在評論中描述了這些問題
-
翠花收到一封關於鐵蛋對她的提交表示憂慮的email。她決定過一會兒再處理這個問題
-
不久後,翠花登錄Phabricator並在首頁“問題提交”下看到提示
-
翠花通過某些方式解決了那些問題(如“找鐵蛋討論”、“修復問題並提交”)
-
鐵蛋表示滿意,並認可了最初那次提交
-
審核請求將從鐵蛋的待辦事項中消失。問題提交也會從翠花的待辦事項裡消失
審核觸發器
審核請求可由多種方式觸發:
-
將“Auditors: username1, username2”寫入提交注釋中,會觸發上述用戶接到審核請求。如下圖所示。
-
可以在Herald工具中,根據提交的屬性創建一系列的觸發規則。如有文件被創建、文本被修改,提交人等。
-
可以在任何提交中,通過提交注釋為自己創建審核請求。
在小團隊中進行審核
如果你身處一個小團隊並且認為不需要復雜的觸發規則,那麼你可以創建一個簡單的審核工作流,如下所示:
-
創建一個新項目:“Code Audits”。
-
為代碼提交創建一條全局規則:"Differential Revision" "does not exist"。在這條規則下,“Code Audits”項目的每一次提交都會觸發一次審核請求。
-
所有工程師加入Code Audits項目。
通過這種方式,所有項目成員都將收到每一次代碼提交的審核請求,但是,一旦某一位成員認可了這次提交,那麼所有的審核請求便會消除。實際上,這種方式強制大家遵守了一條規則:任何提交都應該被人看到。
一旦團隊壯大,便可改進觸發規則使每位開發人員只看到與他們有關的代碼修改。
審核工具小貼士:
-
責任感。在審閱一次代碼提交時,你所負責的審核是被突出顯示的。你要為自己的任何審核行為負責。
-
在diff對比區域,點擊行號將可添加內嵌評論。
-
在diff對比區域,在行號上拖動可添加跨越多行的內嵌評論。
-
內嵌評論最初只保存為草稿,直到你在頁面底部提交評論。
-
按“?”鍵查看快捷鍵。