題:
支持對多個項目進行更改的代碼審查工具
jpappe
2014-06-12 10:12:43 UTC
view on stackexchange narkive permalink

在我工作的地方,我們有非常嚴格的代碼審查標準,這很棒。但是,我們的過程非常陳舊,因此我正在尋找一種工具,以使其變得更有效率。我研究了一些可能的候選人(Gerrit,Phabricator等),但似乎沒有一個人支持我們的環境。我正在尋找支持以下內容的東西:

  • Git(足夠簡單)
  • 單個代碼查看請求,其中包括對多個軟件包的更改(在單獨的存儲庫中,儘管是中央存儲庫都在同一主機上)。
    • 實現功能可能需要更改應用程序本身,應用程序使用的庫以及集成測試
  • 附加來自各種測試運行,代碼質量工具等的輸出,以驗證更改不會引起回歸併符合我們的質量標準。
  • 正式的批准流程

當前,我們的代碼審查過程基本上包括創建手工製作的HTML文檔,該文檔具有指向Gitweb中顯示的差異的鏈接以及定制的簽名工具。是否有具有這些功能的工具?

編輯:要回答評論中的問題,理想的解決方案是免費,開源並可以在Linux上運行。但是,我們還研究了其他不適合此定義的工具,例如GitHub Enterprise。換句話說,正確的工具比環境更重要。

操作系統方面(Linux,Mac,Windows)有任何限制嗎?安迪預算,還是必須免費?
您是否有機會查看git網站本身提供的工具選項?例如在這裡:http://git-scm.com/downloads/guis
略過該鏈接,看起來大多數這些工具主要集中在顯示代碼,分支,差異等上。雖然這確實有用,但並不能真正滿足我們對實際審閱工作流工具的需求。
您是否找到了@jpappe解決方案?看來我們正面臨類似的問題。
@Trengot-簡而言之;沒有。我們目前使用的是GitLab,它不能真正滿足我的上述要求。相反,我們發現稍微修改工作方式而不是嘗試找到理想的工具更為實用。
二 答案:
#1
+4
Steve Barnes
2014-06-12 10:30:54 UTC
view on stackexchange narkive permalink

我強烈建議自己使用過審查委員會並了解其他成功使用過它的項目。

功能:

  • 多個審閱者
  • 靈活但正式工作流程
  • 可通過REST和Python API進行擴展
  • 免費下載或
  • 支持多個VCS系統(Mercurial, Git ,Bazaar,Perforce,Subversion & CVS)。
  • li>使用您自己的主機或幾個在線主機。
  • 基於Web的界面避免了Reviewer OS問題。
  • 代碼以外的項目(例如:屏幕截圖,測試輸出,文檔,等),可以作為附件納入審核過程。
  • 來自管理手冊存儲庫部分。 -“ Review Board支持與各種類型的多個源代碼存儲庫進行對話。單個Review Board服務器可以配置幾乎無限數量的存儲庫,這使其在大型項目和公司(無論小型和小型)中都非常有用。這些都由政府管理通過數據庫部分或管理員儀表板的UI。”
  • 使用Django以Python編寫,因此服務器可以在各種平台/操作系統上運行。
  • MIT許可證,因此您可以自定義或擴展

Screen Shot

它也滿足其他要求嗎?是什麼使它“值得推薦”?您可以分享任何個人經驗嗎?如果可以的話,會很棒;)
@Izzy-會的。
感謝您的推薦。但是,它支持多個存儲庫的事實並不意味著單個“審閱”就可以包括對多個存儲庫的更改。我想我將嘗試使用它,看看工作流程是否兼容。
單個審閱請求只能包含對審閱委員會中單個存儲庫的更改。從我所見,與RB相比,Phabricator允許對審閱過程進行更多控制-例如,具有“阻止審閱者”的概念。
(用戶)對Review Board的最大抱怨是,由於它被設計為後推式審查工具(並非旨在限制要推送的更改),因此批准功能非常薄弱。任何人都可以單擊“批准”按鈕,並且不能撤消批准。您也無法在不滾動整個事件日誌的情況下查看單個用戶是否已批准,您只能看到任何人單擊批准按鈕的次數。
#2
  0
mtalexan
2018-01-31 05:48:15 UTC
view on stackexchange narkive permalink

對於您所描述的,實際上並沒有一個工具,也可能不會想要一個。您想要的是一個用於代碼審查的代碼審查工具,一個CI(持續集成)工具或一個用於進行驗證,測試構建,靜態分析,代碼指標,工件生成等的工具,一個用於控制所要處理內容的工具您的存儲庫,以及將所有這些結果匯總在一起的工具。在某些情況下,一種工具可能會提供多種功能,而在其他情況下,您可能只會獲得其中一種功能。
常見的解決方案包括PerforceHelix,GitHub(雲或本地託管),GitLab(雲或本地託管),RhodeCode ,等作為處理存儲庫管理和結果收集點的中央工具。然後,您可以安裝與其集成的其他工具,也可以為它們提供插件來完成諸如代碼審查和CI之類的附加任務。
對於我公司,我們有一些相似的需求/目標。我們有一個自託管的GitLab實例,然後選擇將其與SmartBear Collaborator集成以進行嚴格的代碼審查,並選擇Jenkins集成我們的CI。使用GitLab Enterprise(收費的,但大多是開源的),您具有稱為Merge Requests(在GitHub中被稱為Pull Requests)的變更門,需要批准才能合併到您的倉庫的master分支中,這些可以依賴在企業專用的“管道”上。管道以及Runner設計用於實施CI構建步驟,並確保測試構建成功,單元測試通過等。它們已經設置好,因此您可以在管道中包含多個步驟,因此如果您需要生成靜態分析結果並發布鏈接到他們進行審核,您可以這樣做。請記住,每個人在此領域都有不同的需求,因此他們提供了構建基塊,您可以將它們與yaml文件和Web鉤子/ API腳本一起縫製到其他工具中。

如果您需要嚴格的審核過程,並且希望能夠包含多個存儲庫中的更改,那麼我發現唯一可以很好地完成此工作的工具就是SmartBear的Collaborator工具。您可以嘗試使用受用戶數量限制的免費版本,並且它們具有定期的免費網絡廣播,您可以加入該網絡廣播,以了解它的工作原理,並提出關於(真正的和知識淵博的人)的問題。不幸的是,代碼本身是封閉的源代碼,您需要為10個以上的用戶支付許可證費用,但它們具有與GitLab(自身和雲託管)和GitHub(僅雲託管)的集成支持,以及我尚未提供的其他幾個選項。

Smartbear代碼協作者

功能包括
可自定義的獨立工作流程(模板),用於指定:

  • 必須審查每個角色中最多有4個角色的成員。
  • 批准更改是否需要工作流中的某個角色,或者可以批准還是根本不批准
  • 給定角色中有多少必須批准審核(包括全部,不選或固定數量)
  • 角色的唯一名稱
  • 字段(下拉列表,多選,多行文字)和評論的字段要求(正則表達式,長度限制)
  • 檢查清單
  • 缺陷/缺陷字段
  • 是否是否批准某個角色的所有成員都必須進行E-Sign步驟。

必須eps運行中所有用戶對所有評論的所有操作的運行審核日誌,該日誌幾乎不可修改。
通過直接將更改上傳到該日誌,您可以在單個評論中擁有任意數量的不同存儲庫,以及所有存儲庫可以被自動識別(至少是git存儲庫)。
這是在MSWord / OpenOffice / LibreOffice文檔上能很好地進行審閱的少數工具之一,並且具有對文檔和圖像文件比較進行註釋的一種不錯的方法(浮動引腳)。

Code Collaborator screenshot from Google Image search(來自未知Google圖片搜索結果的屏幕截圖)



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...