本文介绍代码库的分支设置功能。
背景信息
分支设置包括两部分功能:
默认分支设置
保护分支设置
代码库管理员可进入代码库详情,通过菜单栏的设置>分支设置可进入分支设置页面。
默认分支
默认分支作为克隆、创建分支、合并请求、代码浏览的基础分支存在,同时可防护分支被误删除。作为代码库管理员可以按团队开发习惯修改默认分支。
保护分支
保护分支限制删除分支,限制强制推送(Force Push)。
代码库管理员设置合适规则的分支进行保护,被设置成保护分支即不允许任何人删除分支和强制推送,保护重要分支保护防止误删除,同时避免强制推送操作使 Commit 无法追溯。
新建保护分支规则
设置保护分支规则的步骤如下:
步骤一:选择分支
共支持两种形态指定分支:
填写具体分支完整名称。
分支通配符规则(目前只支持 ? 和 *),当匹配多个分支时展示所有匹配的分支。
如果一个保护分支存在多个规则,以哪个为主?
生效逻辑:如果代码库的某个分支可匹配多个保护分支规则,则包含特定分支名称的规则具有最高优先级;如果某个分支存在多个通配符规则匹配,则首先创建的分支规则将具有更高的优先级。
如:代码库中有分支master、master-1、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 介绍详见文档CodeOwner 机制。
设置自动化执行检查的通过规则
代码扫描
如果未在库中开启代码检测任务,则合并请求无法进行检测任务卡点。测试任务配置参见使用代码检测服务。
当开启某种扫描检测服务后,可针对服务进行评审卡点。
流水线检测
在保护分支中,支持对接 Flow 流水线进行合并请求的检测卡点。
如果当前代码库从未关联过流水线,需要前往云效流水线 Flow 创建或关联已有流水线:如何关联 Flow 流水线
为了每次提交自动触发流水线执行检测,创建流水线时请手动勾选「代码提交」触发事件,否则需要手动触发流水线输出检测结果,作为合并请求的卡点检查数据:
关联流水线后,可在此选择需要用于合并检测卡点的流水线:
被选中的流水线将用于任何申请合并至当前保护分支的合并请求的卡点条件,需要流水线执行通过才能合并至当前保护分支。
若被选中的流水线未运行,同样不满足合并条件要求,因此请保证用于卡点的流水线已运行。