本文主要介紹程式碼程式庫的分支設定功能。
背景資訊
分支設定包括兩部分功能:
預設分支設定
預設分支是複製、建立分支、合并請求、代碼瀏覽的基礎分支,並可防止誤刪除。程式碼程式庫管理員可以根據團隊開發習慣修改預設分支。
保護分支設定
保護分支限制刪除和強制推送(Force Push)。程式碼程式庫管理員可以設定規則保護分支,防止誤刪除和強制推送,確保重要分支的安全和 Commit 可追溯。
功能入口
程式碼程式庫管理員可進入程式碼程式庫詳情,通過功能表列的可進入分支設定頁面。

建立保護分支規則
設定保護分支規則的步驟如下:

步驟一:選擇分支
支援兩種方式指定分支:
方式一:填寫具體分支完整名稱。
方式二:分支萬用字元規則(目前只支援
?和*),當匹配多個分支時展示所有匹配的分支。如果一個保護分支存在多個規則,以哪個為主?
生效邏輯:如果程式碼程式庫的某個分支可匹配多個保護分支規則,則包含特定分支名稱的規則具有最高優先順序;如果某個分支存在多個萬用字元規則匹配,則首先建立的分支規則將具有更高的優先順序。
假如程式碼程式庫中有分支master-1、master-2、master-prod-1,有規則順序如下:master-*、master-1、master-prod-*,匹配規則如下:
分支名
可匹配的規則
實際生效的規則
master-1
master-*,master-1
master-1
master-2
master-*
master-*
master-prod-1
master-*,master-prod-*
master-*
步驟二:設定推送規則
設定允許直接推送到該保護分支的角色或人員。
允許推送的角色:預設允許管理者和開發人員。取消某種角色表示該角色不允許推送。選擇無表示不允許任何人推送。
允許推送的人員:可在程式碼程式庫成員中選擇,前提是該使用者有程式碼程式庫的寫入許可權。
步驟三:設定合并規則
設定允許點擊合并請求中的合併作業的角色或人員。
允許合并的角色:預設允許管理者和開發人員。取消某種角色表示該角色不允許合併作業。
允許合并的人員:可在程式碼程式庫成員中選擇,前提是該使用者有程式碼程式庫的寫入許可權。
以上規則設定的角色和人員同時生效,例如設定了僅允許管理員角色推送,同時設定了允許某個開發人員使用者A推送,則結果是當前保護分支允許管理員角色的使用者以及指定的使用者A進行推送,儘管使用者A非程式碼程式庫管理員仍然可以進行推送。
步驟四:設定評審通過規則
設定人工評審的通過規則

針對程式碼檢閱可以進行規則限制:
允許建立者通過:是 / 否。
程式碼檢閱的評論已經全部解決:是 / 否。
支援兩種評審規則模式:
普通模式:
最少評審通過人數:1。
允許通過合并請求:管理員 + 開發人員。
預設評審者:如果未填寫,該項不展示,限制最多20位。
CodeOwner 模式:
關於 CodeOwner 的介紹,詳見文檔CodeOwner 機制。
設定自動化執行檢查的通過規則
代碼掃描
未開啟代碼檢測任務時,合并請求無法進行檢測任務卡點。配置請參見使用代碼檢測服務。

當開啟某種掃描檢測服務後,可針對服務進行評審卡點。

流水線檢測
在保護分支中,支援對接 Flow 流水線進行合并請求的檢測卡點。

如果當前程式碼程式庫從未關聯過流水線,需要前往雲效流水線 Flow 建立或關聯已有流水線:如何關聯Flow流水線
重要為了每次提交自動觸發流水線執行檢測,建立流水線時請手動勾選代碼提交觸發事件,否則需要手動觸發流水線輸出檢測結果,作為合并請求的卡點檢查資料:

關聯流水線後,可在此選擇需要用於合并檢測卡點的流水線。

被選中的流水線將用於任何申請合并至當前保護分支的合并請求的卡點條件,需要流水線執行通過才能合并至當前保護分支。
重要若被選中的流水線未運行,同樣不滿足合并條件要求,因此請保證用於卡點的流水線已運行。