规范
规范功能用于检测或约束项目成员的分支推送、代码合并以及版本发布等行为,从而推动研发流程的规范化与标准化。
目前,CODING DevOps 平台提供的规范功能支持项目管理员对代码仓库(仓库类型为 Git)配置以下规则:
- 推送规则:用于指定允许推送的分支的类型、命名及提交信息。不符合规则的分支操作将会出现违规提示。
- 合并规则:用于检测合并请求的源分支是否允许合并至目标分支。用户在发起针对某一目标分支的合并请求后,系统将检测请求合并的源/目标分支是否匹配预设的合并规则,并针对违规情况给予提示。
- 发布规则:用于检测代码版本的标签是否符合命名规则。如有不符合发布规则的版本标签,系统将会给予违规提示。
前提条件
在使用规范功能之前,项目管理员需要先配置代码仓库内使用的分支类型。配置好的分支类型会用于 Compass 工作流与代码仓库规范中。
在规范管理页面,点击右上角「功能设置」。
你也可点击项目页面左下角「项目设置」进入「Compass」->「分支设置」页面。
在「分支设置」页签,系统默认配置了常见的分支类型并指定了分支前缀。你可以选择项目内常用的分支类型,并按需修改分支前缀。
配置代码仓库规范
当首次进入项目内的代码仓库规范页面时,系统已默认配置了常见的推送、合并及发布规则。点击右上角「修改规范」,即可根据实际项目情况修改规范。
推送规则
推送规则规定了允许推送的分支类型,以及分支名或提交信息是否必须包括事项 ID。
- 指定允许推送的分支类型。
- 选项一:不做限制,任何分支皆允许推送。
- 选项二:允许推送右侧显示的“分支类型”下的分支。(如需修改“分支类型”,参考前提条件前往项目设置中管理。)
- 选项三:允许推送右侧显示的“分支类型”下的分支,以及自定义分支类型。点击「新增」,输入分支名称及前缀即可完成分支类型自定义。
- 指定分支名或代码提交信息是否需要包括事项 ID。
- 事项 ID 由项目名与事项编号组成,格式为
项目名#事项 ID
或项目名-事项 ID
。例如,开发分支需包括名为 learn 项目的事项 123,则需命名为dev/learn#123
或dev/learn-123
。 - 同理,若代码提交信息必须包括 learn 项目的事项 123,可在 commit message 中包含
feat: learn#123
或feat: learn-123
。项目名为项目 URL 后缀标识,可在「项目设置」->「项目与成员」->「基本设置」中查看。
以下为示例配置说明:
配置 | 约束 |
---|---|
对所有分支类型的命名规则(分支前缀除外)或提交信息均没有约束。 | |
针对所有分支类型,分支名无需包含事项 ID,但代码提交信息必须包含事项 ID。 | |
- 开发分支和发布分支:分支名需包含事项 ID; - 缺陷分支和补丁分支:代码提交信息需包含事项 ID。 |
|
针对所有分支类型,分支名均需包含事项 ID。 |
合并规则
合并规则规定了允许合并的源/目标分支类型。不匹配合并规则配置的合并请求即为违规。
发布规则
发布规则允许你通过设置标签命名规则(正则表达式)检测代码版本的标签是否符合规范。
开启规范功能
项目管理员可为每个代码仓库开启或关闭代码仓库规范功能,或为新仓库默认开启该功能。
为单个仓库开启代码仓库规范
- 在「Compass」->「规范」->「代码仓库规范」中,点击右侧的「仓库管理」按钮进入仓库管理页面。
- 选择任一代码仓库,将「开启代码仓库规范」功能打开。
- 若没有配置自定义规范,则该仓库将使用项目内配置的代码仓库规范进行约束。
项目代码仓库规范即在「Compass」->「规范」->「代码仓库规范」页面中配置的规范。
- 若将「自定规范」功能打开并自定义了代码仓库规范,则该仓库将使用当前页面的规范配置进行约束。
新仓库自动开启规范
在「项目设置」->「Compass」->「规范」中开启「新仓库自动开启研发规范」功能后,对于新建的代码仓库会默认开启规范功能,并使用项目内配置的规范进行约束。
开启强制规范
对仓库开启代码仓库规范之后,项目管理员还可以在「项目设置」->「Compass」->「规范」中进一步「开启强制规范」以强制拦截不符合规则的分支创建、代码推送及合并请求等操作。
强制规范只对开启代码仓库规范的仓库生效。若代码仓库规范功能关闭,强制规范不做任何拦截。
代码仓库规范与强制规范的区别
仅开启代码仓库规范:若相关代码仓库操作被检测出违规,系统将会给出提示,但相应操作依然可以进行。
同时开启代码仓库规范和强制规范:若相关代码仓库操作被检测出违规,该操作会被立即拦截或锁定,无法进行。
查看代码仓库规范使用情况
在「Compass」->「规范」->「代码仓库规范」页面右侧的「已规范仓库」区域可查看该项目中使用了规范的仓库。
- 默认只显示已开启代码仓库规范的仓库;点击「仓库管理」即可查看当前项目中的所有仓库。
- 使用自定义规范的仓库将显示「自定规范」标签;无标签则表明仓库使用项目内配置的代码仓库规范。
- 外部仓库和开源仓库无法使用代码仓库规范功能。
处理违规情况
若出现代码仓库规范违规的情况,可参考以下内容进行解决。
违规分支
现象: 在「分支」页面,分支被打上「违规分支」的标记,且违规项目为「分支规范」。
若该违规分支存在合并请求,在「合并请求」页面也会显示该分支存在违规情况。
原因: 该分支命名不符合规范。
解决方法: 在「Compass」->「规范」->「代码仓库规范」中查看该代码仓库的推送规则,并根据规则重命名分支。
违规合并请求
现象: 在「合并请求」页面,显示存在合并规范违规情况。
原因: 该合并请求的源分支或目标分支不匹配代码仓库的允许合并规则。
解决方法: 在「Compass」->「规范」->「代码仓库规范」中查看允许合并规则,按需更新合并请求或合并规则。
违规发布标签
现象: 在「版本」页面的「标签」页签,显示存在违规标签。
原因: 该版本标签不符合发布规则中的标签命名规则。
解决方法: 在「Compass」->「规范」->「代码仓库规范」中查看发布规则,根据发布规则更新标签命名。
关闭规范功能
- 在「Compass」->「规范」->「代码仓库规范」中,点击右侧的「仓库管理」按钮进入仓库管理页面。
- 在仓库管理页面,选择任一代码仓库,将「开启代码仓库规范」功能关闭,则该仓库的操作将不受任何约束。
不支持为多个仓库批量关闭该功能或单独关闭 Compass 的规范功能。如果无需使用规范功能,项目管理员可在「项目设置」->「功能开关」中将 Compass 关闭。
在阅读中是否遇到以下问题?*
您希望我们如何改进?*
如果您希望得到回复,请留下您的邮箱地址。