Go Wiki: Gerrit 存取權限
本文說明的兩種 Gerrit 存取權限具有不同的權限和職責。如果您是社群的活躍成員,才需要申請存取權限。新進的貢獻者在要求存取權限前,應先參與 Gerrit 程式碼檢閱程序一段時間。
(有關 GitHub 存取權限,請見 GitHubAccess)
執行試驗機器人(“may-start-trybots”)
使用試驗機器人存取權限讓您可以啟動提交(預先提交測試)之前,在 Gerrit 中執行 CL 的測試。試驗機器人會在安全性較高且隔離良好的環境中執行,但安全性並非完美加固。在啟動試驗機器人之前,您必須略讀 CL 以找出任何惡意項目。
請參閱 LUCI,以取得有關觸發試驗機器人的詳細資訊。
所有審核人員(見下一章節)都會自動擁有試驗機器人存取權限。其他人可以要求試驗機器人存取權限。請見以下的 要求存取權限。
核准變更集(“審核人員”)
審核者可以審查並提交程式碼變更 (CL),需遵守下列所述的審查規則。成為審核者必須擔負責任:審核者是關心 Go 並希望其成功的人員。審核者不只是能夠進行變更的人,而必須證明自己具有與團隊合作、讓最知識淵博的人員審查程式碼、提供高品質程式碼並徹底修正問題 (在程式碼或測試中) 的能力。
程式碼審查需求
每一個 CL 都需要 同時 獲得審核者審查程式碼 (Code-Review+2) 和兩名使用 Google 安全電腦的 Google 員工參與,可以上傳程式碼或以至少 Code-Review+1 投票審查。要求多個參與者確保無法從單一遭入侵的帳戶單方面提交程式碼。Google 員工和硬體需求進一步提高標準:由於許多存放庫中的 CL 基本上是由 Google 在提交時讓使用者下載的已發佈版本,因此 Google 的參與是為了核准此發佈版本。審查完成 Code-Review+2 並取得必要的 Google 參與後,就能由任意審核者提交。所有這些規則均由 Gerrit 伺服器強制執行。
Code-Review+2 投票表示您已閱讀變更,並確信它正確且適於提交。通常,您只應在您「擁有」的目錄或套件中為 Code-Review+2 程式碼投票;例外情況是輕微且明顯正確的變更。請注意,所有對使用者可見的新功能或變更(例如,新 API、新的命令列旗標等)都必須透過 提案程序 進行。CL 應在提交訊息中參照特定的已核准提案 (在提交訊息中(「For #NNN。」)
在加入 Code-Review+2 投票時,建議也加入 Commit-Queue+1 和 Auto-Submit+1:有關詳情,請參閱下列 自動提交 區段。
Code-Review+1 投票表示您已閱讀變更,並認為它似乎合理,但不會做出 Code-Review+2 所表示的明確判斷。它也表示您確信變更並未引進任何形式的安全漏洞或其他明顯不適當的程式碼變更。
當變更獲得適當的審查以提交時,會在 Gerrit 中為審核者顯示 [提交] 按鈕。您只應提交具有該區域擁有者認可的 Code-Review+2 的變更 (可能是您!)。
審核者也可以對 CL 投票 Hold+1 以將其標記為無法提交 (直到移除該投票為止)。典型的理由可能是我們需要等待提案審查的 CL,或因為 CL 需要在特定時間提交:投下 Hold+1 可確保它仍能被審查,但不會意外過早提交。
如需申請審核者存取權,請參閱下列 申請存取。
自動提交
如果您正在審查 CL 並認為可以照目前的樣子核准並提交,而無需進一步變更,您可以使用自動提交功能來執行測試,然後在測試通過時提交 CL。為執行此操作,請投票支持 Code-Review+2,以及 Auto-Submit+1 和 Submit-Queue+1。Gopherbot 會在測試通過時提交它。
更確切地說,Gopherbot 會觀察並自動提交符合以下條件的 CL
- 具有 Auto-Submit+1 投票權,
- 已符合 TryBots-Pass 提交需求,
- 已獲得必要的程式碼審查,
- 沒有未解決的留言,
- 未標記 #wait-release,
- 且可順利合併至目前的 branch head。
所有核准者都可以新增 Auto-Submit+1 投票。在重新上傳補丁時,不會傳遞 Auto-Submit+1 投票。
核准 Wiki CL(「wiki-approvers」)
主要在 wiki 中工作的人員(https://go.googlesource.com/wiki)可以要求獲得 wiki-approvers 權限。這可讓他們+2 並提交 wiki CL,甚至是他們自己的 CL。Wiki CL 不需要兩位 (或任何) Google 員工參與,它們沒有 TryBot,而且它們可以自行審查。
請求存取
如需請求以上任何存取類型,請建立一個新的問題(https://go.dev.org.tw/issue/new?title=access:+&body=See+https://go.dev.org.tw/wiki/GerritAccess),並說明您要取得哪種權限,以及您用於登入 Gerrit 的 Google 帳戶。
授與存取權限的決定是由 Google 上的 Go 發行小組所做。如果您的請求遭到拒絕,幾乎總是因為您尚未活躍到足以讓他們清楚了解您的工作、了解專案慣例等事項。別氣餒:需要時間才能達到這種熟悉程度。
取得存取權限後
開始協助維護!請參閱 Gardening。
此內容是 Go Wiki 的一部分。