更新时间:2025-02-28 gmt 08:00

配置提交规则-九游平台

提交规则概述

codearts repo支持为代码的提交建立校验、限制规则,以确保代码质量。

下面将介绍“配置项目级的提交规则”“常见的正则表达式示例”

约束限制

当用户角色为“项目经理”或者“项目管理员”,可以设置项目级webhook。

配置项目级的提交规则

在代码托管九游平台首页,进入项目九游平台首页,选择“设置” > “策略设置” > “提交规则”

如果用户想对项目下的所有仓库设置相同的提交规则,请按照表1填写参数,并勾选“开启强制继承”

表1 仓库的“提交规则”说明

字段

说明

拒绝未signed-off-by签名的提交

配置只允许signed-off-by签名的提交才能推送到仓库。

代码托管服务签名方式:

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

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

git客户端签名方式:

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

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

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

拒绝未gpg签名的提交

配置只允许gpg签名的提交才能推送到仓库。

配置gpg密钥:

git config --global user.signingkey “用户的gpg私钥

git客户端签名方式:

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

git commit -s -m “用户的提交备注

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

git tag -s -m “用户的标签备注

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

不允许删除tags

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

阻止包含涉密文件的提交

涉密文件包括id_rsa和id_dsa等文件。

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

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

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

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

如果用户想对项目下仓库的指定分支设置提交规则,请用户单击“新建提交规则”,参数填写请参见表格表2

表2 项目级提交规则的参数填写

参数名

参数说明

规则名称

必填参数,自定义规则名称。

分支规则

必填参数,需要输入完整规则名或创建一个正则表达式。需要对输入进行校验,包括分支名的校验和正则表达式校验。

提交规则

非必填。

  • 提交信息匹配规则:提交信息默认为空,不会对提交信息校验,任何提交信息都可以提交。若符合正则匹配,则允许提交。用户也可以设置在提交信息中必须包含工作项单号,实现代码的e2e追溯,限制500个字符。
  • 提交信息负面匹配规则提交信息负面匹配规则默认为空,不会对提交信息校验,任何提交信息都可以提交。若符合正则匹配,则不允许提交。容限制500个字符。
  • 提交人:提交人默认为空,不会对提交人校验,任何人都可以提交,限制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”设置邮箱。

    例如:

    设置提交人邮箱规则:@my-company.com$ 

文件基本属性规则

非必填。

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

    例如:

    设置禁止提交的文件名称规则:(\.jar|\.exe)$
  • 单文件大小限制(mb):表示添加或更新文件大小超过默认值,推送将被拒绝。用户可以更改默认值大小。

二进制规则

非必填。

二进制规则默认不勾选,默认勾选“禁止禁止新增二进制文件(对特权用户无效)”“允许修改二进制文件”勾选后,提交文件为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

管理提交规则

下图所示,单击提交规则所在行的,可查看提交规则详情。单击,可修改规则并重新保存。单击,可删除此提交规则。

图1 提交规则详情

相关文档

网站地图