更新时间:2023-08-07 GMT+08:00

提交规则

“提交规则”位于仓库详情中的 设置 > 策略设置 > 提交规则

“提交规则”可以为代码的提交建立一系列的校验、限制规则,以确保代码质量,此设置只针对被设置的仓库生效。

只有仓库管理员和仓库所有者能看到这个页面且有设置权限。

表1 “提交规则”说明

字段

说明

拒绝未签名的提交

配置只有已签名的提交才能推送到该仓库。

代码托管服务签名方式:

在代码托管服务中进行在线commit时,编写提交信息需采用以下格式:

commit message             #此处填写自定义提交信息。
                           #此处为空行。
Signed-off-by:自定义签名   #此处在“Signed-off-by:”后面填写自定义签名。

Git客户端签名方式:

在Git客户端进行commit时,需增加 -s参数。

git commit -s -m “您的提交备注”

注意需要提前在客户端配置好签名和邮箱

不允许删除Tags

勾选后,禁止通过页面以及客户端命令的方式删除Tags。

阻止包含涉密文件的提交

涉密文件包括ssh_server_rsa、id_rsa和id_dsa等文件,详情参见包含涉密文件的说明

拒绝使用git push -f命令提交代码

配置是否不允许在客户端使用git push -f命令提交代码。

git push -f表示将目前自己本机的代码库推送到代码托管,并覆盖。

一般情况下建议禁止使用。

新建提交规则

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

表2 字段说明

字段

说明

规则名称

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

分支规则

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

提交规则

非必填。

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

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

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

    设置符合规范Commit message:

    TraceNo:DTS20220801156688 Author:cwx1094057 Description:testpushfile

    设置不符合规范Commit message:

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

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

    TraceNo:((REQ[0-9]{1,9})|(DTS[0-9]{13}))(.|\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):文件大小上限默认显示为50,表示添加或更新文件大小超过50MB,推送将被拒绝。管理员可以在0~200范围内修改值。
说明:

创建仓库时默认的提交规则(default)中的单文件大小限制为200MB,新建提交规则时单文件大小限制默认推荐50MB。

二进制规则

非必填。

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

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

规则生效时间

非必填。

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

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