原文地址:https://blog.jetbrains.com/upsource/2017/04/13/automating-your-code-review-workflow-with-upsource/
以下文章是基于原文用翻譯工具翻譯的:
代碼審查工作流的最后 三篇 文章表明鬼譬,進(jìn)行代碼審查的方法不只一種,而且您采用的方法將取決于您希望通過審查實現(xiàn)的目標(biāo)以及與您合作的團(tuán)隊類型逊脯。
在本文中优质,我們將介紹Upsource如何通過盡可能多地實現(xiàn)自動化來簡化您的工作流程(無論其外觀如何)。當(dāng)可能有用時,我們將展示可以輕松自動化的事物類型巩螃,并展示如何實現(xiàn)演怎。
自動創(chuàng)建評審
如果您的工作流程在誰評審代碼方面是可預(yù)測的,那么您無需手動創(chuàng)建評審并添加評審者避乏,則可以讓Upsource為您完成爷耀。在此示例中,我們假設(shè)您只有一個人拍皮,負(fù)責(zé)檢查所有已提交的代碼歹叮。
腳步:
這是使用“ 定制工作流”實現(xiàn)的。
選擇要為其啟用自動代碼審查的項目盗胀,然后單擊其“ 編輯項目”按鈕。
單擊頁面右側(cè)的“ 定制工作流”鏈接锄贼。
在“自動創(chuàng)建評審”標(biāo)題下票灰,單擊啟用復(fù)選框,然后單擊出現(xiàn)的添加觸發(fā)器按鈕宅荤。
-
對于我們的特定示例屑迂,我們不會輸入任何作者或分支/路徑信息,我們希望所有作者的所有代碼都由我們指定的審閱者進(jìn)行審閱冯键。您會看到Upsource建議該項目中的所有用戶惹盼,因此您只需從列表中選擇一個即可。
圖1:配置用于創(chuàng)建評審的觸發(fā)器
-
保存后惫确,您可以查看觸發(fā)器的詳細(xì)信息:
圖2:查看觸發(fā)器詳細(xì)信息
下次任何人檢入代碼時手报,將自動創(chuàng)建對此提交的代碼審閱,以供審閱者審閱:
圖3:自動創(chuàng)建的評審
筆記:
默認(rèn)情況下改化,這將為每次提交創(chuàng)建一個新的審閱掩蛤。您可以選擇將審閱設(shè)置為自動跟蹤其所在的分支,這在團(tuán)隊使用功能分支或類似的工作流程時可能是合適的陈肛。
圖4:您可以選擇將創(chuàng)建的評審設(shè)置為跟蹤分支
還有其他選項可以將提交捆綁到特定的審閱中揍鸟,例如,使用問題ID或代碼審閱ID將提交自動添加到審閱中句旱。
適用于:
- 可能用于 網(wǎng)關(guān)代碼審閱 過程阳藻,其中一個人通常會批準(zhǔn)對代碼的更改,或者有一組審閱者會自動添加到所有審閱中谈撒。如果作者通常進(jìn)行一系列提交腥泥,但只希望在代碼“完成”時進(jìn)行審查,則不太適合此過程啃匿。
- 可用于設(shè)計演變審核蛔外,在此工作流程中,您可以選擇所有(或大多數(shù))團(tuán)隊要審核的提交。
更改自動分配的審閱者
如果您a)知道將需要哪些開發(fā)人員作為審閱者冒萄,并且可以選擇b)可以基于分支或代碼路徑分配這些開發(fā)人員,則先前的自動化功能非常有用橙数。大多數(shù)團(tuán)隊在分配給評審人員方面更加靈活尊流,尤其是當(dāng)他們遵循迭代方法或使用代碼評審進(jìn)行知識共享時。上游可以從給定的合適開發(fā)人員庫中分配隨機(jī)選擇的審閱者灯帮。
在此示例中崖技,我們將指定一個開發(fā)人員池,這些人員可以隨機(jī)分配以查看任何開發(fā)人員的任何代碼钟哥。
腳步:
我們將啟用第二個自動化工作流程迎献,以及上一個自動化工作流程。首先腻贰,我們需要像上一個示例一樣吁恍,設(shè)置代碼審查的自動創(chuàng)建。唯一的區(qū)別是這一次我們不分配審閱者(請參見圖1 –在第二個示例中播演,我們不添加審閱者)冀瓦。
-
在“ 自定義工作流程”部分中,我們需要轉(zhuǎn)到“自動分配評審參與者”標(biāo)題写烤。在這里翼闽,我們單擊啟用復(fù)選框,然后單擊出現(xiàn)的添加觸發(fā)器按鈕洲炊。
圖5 –分配評審參與者自動觸發(fā)
與往常一樣感局,Upsource會為“創(chuàng)建者”和“用戶”字段都建議用戶。我們將“創(chuàng)建者”字段留空暂衡,因為我們希望這適用于所有開發(fā)人員询微。但是您可以想象,如果您希望此工作流程僅適用于初級/新開發(fā)人員狂巢,則可以將其添加到此框中拓提。
我們將為所有代碼評審選擇一組評審者。這可能只是團(tuán)隊中最資深/最有經(jīng)驗的人隧膘,或者如果您的目標(biāo)是與評審共享代碼代态,則可能是所有開發(fā)人員。
-
現(xiàn)在疹吃,我們可以選擇將池中的每個人都分配為審閱者蹦疑,或者讓Upsource為每個審閱選擇一個隨機(jī)的子集。我們將配置Upsource隨機(jī)選擇一個人萨驶,這樣審閱者就不會因過多的審閱而超負(fù)荷工作歉摧,因此每個人都可以看到代碼的所有部分。
圖6 –配置Upsource從池中隨機(jī)選擇一個審閱者
點(diǎn)擊保存更改按鈕。
-
現(xiàn)在叁温,只要有人簽入代碼再悼,就會自動創(chuàng)建一個審閱,并分配一個隨機(jī)的審閱者膝但。
圖7 –創(chuàng)建評審并分配隨機(jī)評審者
適用于:
- 希望開發(fā)人員擺脫孤島冲九,鼓勵他們在常規(guī)區(qū)域之外查看代碼的團(tuán)隊
- 知識共享 –通過為每次提交分配隨機(jī)審閱者,整個團(tuán)隊最終可以看到整個代碼庫的更改跟束。
- 迭代設(shè)計 –可用于將整個團(tuán)隊分配為每個提交的審閱者或觀察者莺奸,或者可用于隨機(jī)選擇審閱者。當(dāng)使用代碼審查進(jìn)行設(shè)計演變時冀宴,后一種選擇可能是減少某些噪聲的好方法灭贷。
根據(jù)發(fā)布編號自動將提交添加到審閱
許多團(tuán)隊已經(jīng)在問題跟蹤器中用錯誤/功能憑單的ID標(biāo)記了每個提交。如果這是您團(tuán)隊的標(biāo)準(zhǔn)做法略贮,并且您想為每個問題創(chuàng)建一個代碼審查甚疟,則可以打開Upsource中的功能來為您完成此任務(wù)。
腳步:
按照第一個示例中的步驟1-3導(dǎo)航到“ 自定義工作流” 頁面逃延。
-
轉(zhuǎn)到“將修訂自動添加到評審”古拴,然后勾選復(fù)選框。和以前一樣真友,單擊“ 添加觸發(fā)器”以定義設(shè)置黄痪。
圖8 –在問題ID上創(chuàng)建觸發(fā)器
別忘了點(diǎn)擊“ 保存更改”。
-
您仍然需要為第一次提交創(chuàng)建一個代碼審閱盔然,并在注釋中包含正確格式的關(guān)鍵字(Jira或YouTrack問題ID或預(yù)定義的問題ID格式)桅打,除非將其與另一個自動工作流程。但是具有此問題ID的后續(xù)提交將添加到該問題的代碼審查中愈案。
圖9 –具有相同問題編號的提交會自動添加到同一評審中
適用于:
- 不使用功能分支但使用問題編號將其提交分組的團(tuán)隊挺尾。
- 已經(jīng)標(biāo)記了所有提交的問題編號或希望這樣做的團(tuán)隊。
- 適用于所有代碼審查工作流程站绪。
與GitHub自動集成
這已在以前的博客文章中介紹過遭铺。Upsource 與GitHub的雙向集成使同步請求請求(評審)和評審變得容易,因此恢准,無論審閱者還是作者更喜歡使用GitHub UI或Upsource魂挂,所有信息都可在這兩個工具中獲得。
適用于:
- 使用GitHub的團(tuán)隊
- 使用GitHub的開源項目馁筐,其中外部貢獻(xiàn)者使用GitHub UI涂召,內(nèi)部團(tuán)隊成員可以訪問Upsource實例。
摘要
上游有許多選項可幫助您自動執(zhí)行代碼審查工作流敏沉。正如有許多工具可以使代碼中要檢查的例行程序自動化(例如果正,靜態(tài)分析工具和自動化測試)炎码,這些工具可以用來最大程度地減少代碼作者和審閱者的工作量一樣,有些方法可以簡化創(chuàng)建代碼審閱的過程根據(jù)您的工作流程秋泳。
上述選項之一可能滿足您的需要潦闲,或者它們的組合可能會覆蓋絕大多數(shù)需要為您的團(tuán)隊創(chuàng)建代碼審查的情況,因此您甚至無需記住創(chuàng)建審查并派人參加迫皱。