本頁面說明如何為 Secure Source Manager 存放區設定分支保護。
透過分支保護功能,存放區管理員可以設定規則,控管哪些使用者能變更分支、哪些使用者需要核准或審查變更,以及核准的變更必須符合哪些條件,才能合併至分支。
如要進一步瞭解分支保護規則,請參閱分支保護總覽。
事前準備
必要的角色
如要取得為 Secure Source Manager 存放區設定分支保護規則所需的權限,請要求系統管理員授予您下列 IAM 角色:
- Secure Source Manager 執行個體存取者 (
roles/securesourcemanager.instanceAccessor) 在 Secure Source Manager 執行個體上 - Secure Source Manager 存放區管理員 (
roles/securesourcemanager.repoAdmin) Secure Source Manager 存放區 -
如要在 Secure Source Manager 執行個體中,核准任何存放區受保護分支的提取要求,請按照下列步驟操作:
- 執行個體專案的Secure Source Manager 存放區提取要求核准者 (
roles/securesourcemanager.repoPullRequestApprover) Google Cloud - 執行個體專案的Secure Source Manager 存放區寫入者 (
roles/securesourcemanager.repoWriter) Google Cloud
- 執行個體專案的Secure Source Manager 存放區提取要求核准者 (
-
如要核准單一存放區中受保護分支的提取要求:
- 存放區的Secure Source Manager 存放區提取要求核准者 (
roles/securesourcemanager.repoPullRequestApprover) - 存放區的Secure Source Manager 存放區寫入者 (
roles/securesourcemanager.repoWriter)
- 存放區的Secure Source Manager 存放區提取要求核准者 (
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
如要瞭解如何授予 Secure Source Manager 角色,請參閱「使用 IAM 控管存取權」和「授予使用者執行個體存取權」。
建立分支保護規則
控制台
如要建立新的分支保護規則,請按照下列步驟操作:
- 在 Secure Source Manager 網頁介面中,選取要透過分支保護規則保護的存放區。
- 在存放區頁面中,按一下「設定」。
- 按一下「分支規則」分頁標籤。
- 按一下「新增分支規則」。
在「Branch rule ID」(分支規則 ID) 欄位中,輸入分支規則的名稱。
分支規則 ID 只能使用小寫英文字母、數字和連字號。第一個字元必須是英文字母,最後一個字元必須是英文字母或數字。分支規則 ID 最多可有 63 個字元。
在「分店篩選器」欄位中,輸入要套用規則的分店名稱。如要將規則套用至所有分店,請輸入
.*。系統不支援完整規則運算式比對。已啟用的分支規則篩選器不得與存放區重複。使用者可以有多個已停用的分支規則篩選器。舉例來說,您無法在單一存放區中,使用分支篩選器
main啟用兩項分支規則。如果分支適用多項規則,系統會優先採用以特定分支名稱做為分支篩選條件的分支規則,而非萬用字元規則。舉例來說,如果分支規則的分支篩選條件為
main,就會覆寫分支篩選條件為.*的分支規則。系統不會合併規則。在「Branch protection rule details」(分支版本保護規則詳細資料) 區段中,從下列選項指定分支版本規則的需求:
合併前必須先提出提取要求:啟用這項設定後,系統會封鎖直接提交至分支版本的內容。必須先開啟提取要求,才能合併至受保護的分支。
必要審查者人數:指定合併提取要求時,必須核准的審查者人數。
必要核准者人數:指定合併提取要求時,必須核准的人數。
審查者和核准者是具有特定 IAM 角色的使用者。如要瞭解審查者和核准者需要哪些角色,請參閱「分支保護總覽」。
禁止合併過時的審查和核准:如果啟用這項設定,在審查或核准後,如果將新的提交內容推送至提取要求,系統就會移除審查或核准。
必須先解決對話問題才能合併:啟用這項設定後,必須先解決所有程式碼註解和要求變更審查,才能合併。
需要線性記錄:啟用後,如果提交要求會建立非線性 Git 記錄,就無法合併。
需要狀態檢查:啟用後,所選建構狀態檢查必須成功,才能合併提取要求。您必須先在觸發條件檔案中設定觸發條件,才能選取這些條件做為分支保護的狀態檢查。
如要儲存分支規則,請按一下「提交」。
系統會顯示「分支規則」分頁,並列出新的分支規則。
Terraform
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。詳情請參閱 Terraform 供應商參考文件。
如要使用 Terraform 建立新的分支保護規則,請使用google_secure_source_manager_branch_rule 資源。
下列範例設定會為 main 分支建立分支保護規則。
使用範例前,請先替換下列項目:
- BRANCH_RULE_ID:分支保護規則的 ID。
- PROJECT_ID:專案 ID。
- LOCATION:存放區的位置。
- REPOSITORY_ID:存放區 ID。
- BRANCH_NAME_PATTERN:分支名稱或規則運算式模式,例如
main。
resource "google_secure_source_manager_branch_rule" "default" {
branch_rule_id = "BRANCH_RULE_ID"
project = "PROJECT_ID"
location = "LOCATION"
repository_id = "REPOSITORY_ID"
include_pattern = "BRANCH_NAME_PATTERN"
minimum_approvals_count = 2
minimum_reviews_count = 2
require_comments_resolved = true
require_linear_history = true
require_pull_request = true
disabled = false
allow_stale_reviews = false
}
修改分支保護規則
如要修改分支保護規則,請按照下列步驟操作:
- 在 Secure Source Manager 網頁介面中,選取要修改分支保護規則的存放區。
- 在存放區頁面中,按一下「設定」。
- 按一下「分支規則」分頁標籤。
- 按一下要修改的分支規則名稱。
- 編輯分支保護規則。
- 按一下「Update」。
已更新分支保護規則。
刪除分支保護規則
如要刪除分支保護規則,請按照下列步驟操作:
- 在 Secure Source Manager 網頁介面中,選取要移除分支規則的存放區。
- 在存放區頁面中,按一下「設定」。
- 按一下「分支規則」分頁標籤。
- 在要刪除的規則所在資料列中,按一下「刪除」
圖示。 - 在「移除分支規則」確認畫面中,按一下「是」。
已刪除分支保護規則。
後續步驟
- 請參閱分支保護總覽。
- 請按照「連結至 Cloud Build」一文中的步驟,瞭解如何自動執行建構作業。
- 瞭解如何查看自動建構的狀態。