分支設(shè)置
本文主要介紹代碼庫(kù)的分支設(shè)置功能。
背景信息
分支設(shè)置包括兩部分功能:
默認(rèn)分支設(shè)置。
保護(hù)分支設(shè)置。
代碼庫(kù)管理員可進(jìn)入代碼庫(kù)詳情,通過(guò)菜單欄的
可進(jìn)入分支設(shè)置頁(yè)面。默認(rèn)分支
默認(rèn)分支作為克隆、創(chuàng)建分支、合并請(qǐng)求、代碼瀏覽的基礎(chǔ)分支存在,同時(shí)可防護(hù)分支被誤刪除。作為代碼庫(kù)管理員可以按團(tuán)隊(duì)開(kāi)發(fā)習(xí)慣修改默認(rèn)分支。
保護(hù)分支
保護(hù)分支限制刪除分支,限制強(qiáng)制推送(Force Push)。
代碼庫(kù)管理員設(shè)置合適規(guī)則的分支進(jìn)行保護(hù),被設(shè)置成保護(hù)分支后,即不允許任何人刪除分支和強(qiáng)制推送,保護(hù)重要分支以防止誤刪除,同時(shí)避免強(qiáng)制推送操作使 Commit 無(wú)法追溯。
新建保護(hù)分支規(guī)則
設(shè)置保護(hù)分支規(guī)則的步驟如下:
步驟一:選擇分支
共支持兩種形態(tài)指定分支:
填寫(xiě)具體分支完整名稱。
分支通配符規(guī)則(目前只支持 ? 和 *),當(dāng)匹配多個(gè)分支時(shí)展示所有匹配的分支。
如果一個(gè)保護(hù)分支存在多個(gè)規(guī)則,以哪個(gè)為主?
生效邏輯:如果代碼庫(kù)的某個(gè)分支可匹配多個(gè)保護(hù)分支規(guī)則,則包含特定分支名稱的規(guī)則具有最高優(yōu)先級(jí);如果某個(gè)分支存在多個(gè)通配符規(guī)則匹配,則首先創(chuàng)建的分支規(guī)則將具有更高的優(yōu)先級(jí)。
如:代碼庫(kù)中有分支master、master-1、master-prod-1,有規(guī)則順序如下:master-*、master-1、master-prod-*,匹配規(guī)則如下:
分支名 | 可匹配的規(guī)則 | 實(shí)際生效的規(guī)則 |
master-1 | master-*,master-1 | master-1 |
master-2 | master-* | master-* |
master-prod-1 | master-*,master-prod-* | master-* |
步驟二:設(shè)置推送規(guī)則
設(shè)置允許直接推送到該保護(hù)分支的角色或人員。
可以設(shè)置允許推送的角色:默認(rèn)允許管理者和開(kāi)發(fā)者。一旦取消勾選某種角色,意味著該角色不允許進(jìn)行直接推送。若選擇“無(wú)”,表示不允許任何人進(jìn)行推送。
可以設(shè)置允許推送的人員:可在代碼庫(kù)的成員中進(jìn)行選擇,但生效的前提是該選擇的用戶有代碼庫(kù)的寫(xiě)入權(quán)限。
步驟三:設(shè)置合并規(guī)則
設(shè)置允許點(diǎn)擊合并請(qǐng)求中的合并操作的角色或人員。
可以設(shè)置允許合并的角色:默認(rèn)允許管理者和開(kāi)發(fā)者。一旦取消勾選某種角色,意味著該角色不允許進(jìn)行合并操作。
可以設(shè)置允許合并的人員:可在代碼庫(kù)的成員中進(jìn)行選擇,但生效的前提是該選擇的用戶有代碼庫(kù)的寫(xiě)入權(quán)限。
以上規(guī)則設(shè)置的角色和人員同時(shí)生效,例如設(shè)置了僅允許管理員角色推送,同時(shí)設(shè)置了允許某個(gè)開(kāi)發(fā)者用戶A推送,則結(jié)果是當(dāng)前保護(hù)分支允許管理員角色的用戶以及指定的用戶A進(jìn)行推送,盡管用戶A非代碼庫(kù)管理員仍然可以進(jìn)行推送。
步驟四:設(shè)置評(píng)審?fù)ㄟ^(guò)規(guī)則
設(shè)置人工評(píng)審的通過(guò)規(guī)則
針對(duì)代碼評(píng)審可以進(jìn)行規(guī)則限制:
允許創(chuàng)建者通過(guò):是 / 否。
代碼評(píng)審的評(píng)論已經(jīng)全部解決:是 / 否。
同時(shí)支持兩種評(píng)審規(guī)則限制模式:
采用普通模式。
最少評(píng)審?fù)ㄟ^(guò)人數(shù):1。
允許通過(guò)合并請(qǐng)求:管理員 + 開(kāi)發(fā)者。
默認(rèn)評(píng)審者:如果無(wú)填人,該項(xiàng)不展示,限制最多20位。
采用 CodeOwner 模式。
評(píng)審模式:CodeOwner 模式,CodeOwner 介紹詳見(jiàn)文檔CodeOwner 機(jī)制。
設(shè)置自動(dòng)化執(zhí)行檢查的通過(guò)規(guī)則
代碼掃描
如果未在庫(kù)中開(kāi)啟代碼檢測(cè)任務(wù),則合并請(qǐng)求無(wú)法進(jìn)行檢測(cè)任務(wù)卡點(diǎn)。測(cè)試任務(wù)配置參見(jiàn)使用代碼檢測(cè)服務(wù)。
當(dāng)開(kāi)啟某種掃描檢測(cè)服務(wù)后,可針對(duì)服務(wù)進(jìn)行評(píng)審卡點(diǎn)。
流水線檢測(cè)
在保護(hù)分支中,支持對(duì)接 Flow 流水線進(jìn)行合并請(qǐng)求的檢測(cè)卡點(diǎn)。
如果當(dāng)前代碼庫(kù)從未關(guān)聯(lián)過(guò)流水線,需要前往云效流水線 Flow 創(chuàng)建或關(guān)聯(lián)已有流水線:如何關(guān)聯(lián) Flow 流水線
為了每次提交自動(dòng)觸發(fā)流水線執(zhí)行檢測(cè),創(chuàng)建流水線時(shí)請(qǐng)手動(dòng)勾選代碼提交觸發(fā)事件,否則需要手動(dòng)觸發(fā)流水線輸出檢測(cè)結(jié)果,作為合并請(qǐng)求的卡點(diǎn)檢查數(shù)據(jù):
關(guān)聯(lián)流水線后,可在此選擇需要用于合并檢測(cè)卡點(diǎn)的流水線:
被選中的流水線將用于任何申請(qǐng)合并至當(dāng)前保護(hù)分支的合并請(qǐng)求的卡點(diǎn)條件,需要流水線執(zhí)行通過(guò)才能合并至當(dāng)前保護(hù)分支。
若被選中的流水線未運(yùn)行,同樣不滿足合并條件要求,因此請(qǐng)保證用于卡點(diǎn)的流水線已運(yùn)行。