代码托管 CODEARTS REPO-提交规则:新建提交规则

时间:2023-12-06 10:17:44

新建提交规则

仓库管理员和仓库所有者可针对仓库某一分支新建提交规则,每个分支只能设置一条提交规则。

提交规则的优先匹配机制:

1、目标分支优先匹配已配置的提交规则;

2、精准匹配不到时,以模糊匹配到的第一条规则为准;

3、模糊匹配不到后以default规则为准。

表2 字段说明

字段

说明

规则名称

必填,新建提交规则的名称,限制200个字符。

分支规则

必填,下拉选择分支或者创建一个正则表达式,限制500个字符。

提交规则

非必填。

  • 提交信息:提交信息默认为空,不会对提交信息校验,任何提交信息都可以提交,限制500个字符。

    例如:设置Commit message的格式规则:

    TraceNo:(REQ[0-9]{1,9})(.|\n|.\n)Author:.*(.|\n|.\n)Description:.*

    设置符合规范Commit message:

    TraceNo:REQ1234567 Author:**** Description:testpushfile

    设置不符合规范Commit message:

    new files
  • commit提交信息负面匹配规则:提交信息负面匹配规则默认为空,不会对提交信息校验,任何提交信息都可以提交,限制500个字符。

    例如:设置Commit message的格式规则:

    TraceNo:(REQ[0-9]{1,9})(.|\n|.\n)Author:.*(.|\n|.\n)Description:.*
  • 提交人:提交人默认为空,不会对提交人校验,任何人都可以提交,限制200个字符。

    提交人可通过“git config -l”查看user.name的值,并通过“git config --global user.name”设置user.name的值。

    例如:

    设置提交人规则:([a-z][A-Z]{3})([0-9]{1,9})
  • 提交人邮箱地址:提交人邮箱地址默认为空,不会对提交人邮箱地址校验,任何邮箱地址都可以提交,限制200个字符。

    提交人可通过“git config -l”查看user.email的值,并通过“git config --global user.email”设置邮箱。

    例如:

    设置提交人邮箱规则:@huawei.com$

文件基本属性规则

非必填。

  • 禁止提交的文件名称:禁止提交的文件名称规则默认为空,不会对文件名校验,任何文件都可以提交,建议正则编写时使用规范的正则语句进行匹配,文件名禁用规则处默认会根据规则校验文件所属路径,限制2000个字符。

    例如:

    设置禁止提交的文件名称规则:(\.jar|\.exe)$
  • 单文件大小限制(MB):单文件推送大小(不含LFS)上限与您所购买的套餐规格一致,具体可查看约束与限制
    • 体验版/基础版:文件大小上限为200,表示添加或更新文件大小超过200MB,推送将被拒绝。管理员可以在0~200范围内修改值。
    • 专业版/企业版:文件大小上限为300,表示添加或更新文件大小超过300MB,推送将被拒绝。管理员可以在0~300范围内修改值。

    当用户变更套餐且配置的提交规则不变时,系统自动修改为当前套餐单文件大小限制。

二进制规则

非必填。

二进制规则默认不勾选,表示二进制文件默认可以上传【需满足单文件不超过上面设置的文件大小上限】。当“禁止新增二进制文件”被勾选时,“允许修改二进制文件”“二进制文件白名单”“特权用户”才生效。”允许修改二进制文件“勾选后,提交文件为modify状态的二进制文件不会拦截,可直接上传。二进制文件可以直接删除,不会进行二进制检查。

  • 禁止新增二进制文件(对特权用户无效)。
  • 允许修改二进制文件(对特权用户无效)。
  • 二进制文件白名单(可直接入库的文件,限制2000个字符)。
  • 特权用户(特权用户上限为50人)。

规则生效时间

非必填。

在生效日期之后创建的所有提交都必须与hook设置相匹配才能被推送。如果此字段为空,则无论提交日期如何,都将检查所有提交。

不推荐将二进制文件存放至代码托管仓库,会影响代码仓的性能和稳定性。

表3 常见正则表达式示例

规则

示例

单个a或b或c字符

[abc]

非a或b或c的字符

[^abc]

在a到z范围内的小写英语字母字符

[a-z]

在a到z范围外的字符

[^a-z]

在a到z或A到Z范围内的大小写英语字母字符

[a-zA-Z]

任意单个字符

.

选择 - 匹配 a 或 b

a|b

任意空白字符

\s

非空白字符

\S

阿拉伯数字字符

\d

非阿拉伯数字字符

\D

字母、数字或下划线的字符

\w

非字母、数字或下划线的字符

\W

匹配括号中的内容(不捕获)

(?:...)

匹配并捕获括号中的内容

(...)

零个或一个a

a?

零个或更多a

a*

一个及以上a

a+

三个a

a{3}

三个a以上

a{3,}

3到6个a

a{3,6}

文本开头

^

文本末尾

$

单词边界

\b

非单词边界

\B

换行符

\n

回车符

\r

制表符

\t

空字符

\0

support.huaweicloud.com/usermanual-codeartsrepo/codeartsrepo_03_0072.html