提交规则
“提交规则”位于仓库详情中的
。“提交规则”可以为代码的提交建立一系列的校验、限制规则,以确保代码质量,此设置只针对被设置的仓库生效。
仓库内的仓库成员可以查看该页面,仓库成员是否具有仓库设置权限,请参考权限管理页面。
字段 |
说明 |
---|---|
拒绝未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表示将目前自己本机的代码库推送到代码托管并覆盖。 一般情况下建议禁止使用。 |
新建提交规则
仓库管理员和仓库所有者可针对仓库某一分支新建提交规则,每个分支只能设置一条提交规则。
提交规则的优先匹配机制:
1、目标分支优先匹配已配置的提交规则;
2、准确匹配不到时,以模糊匹配到的第一条规则为准;
3、模糊匹配不到后以default规则为准。
字段 |
说明 |
---|---|
规则名称 |
必填,新建提交规则的名称,限制200个字符。 |
分支规则 |
必填,下拉选择分支或者创建一个正则表达式,限制500个字符。 |
提交规则 |
非必填。
|
文件基本属性规则 |
非必填。
说明:
创建仓库时默认的提交规则(default)中的单文件大小限制为200MB,新建提交规则时单文件大小限制默认推荐50MB。 |
二进制规则 |
非必填。 二进制规则默认不勾选,表示二进制文件默认可以上传【需满足单文件不超过上面设置的文件大小上限】。当“禁止新增二进制文件”被勾选时,“允许修改二进制文件”、“二进制文件白名单”、“特权用户”才生效。”允许修改二进制文件“勾选后,提交文件为modify状态的二进制文件不会拦截,可直接上传。二进制文件可以直接删除,不会进行二进制检查。
说明:
具有推送权限的仓库成员可作为特权用户。 |
规则生效时间 |
非必填。 在生效日期之后创建的所有提交都必须与hook设置相匹配才能被推送。如果此字段为空,则无论提交日期如何,都将检查所有提交。 |
不推荐将二进制文件存放至代码托管仓库,会影响代码仓的性能和稳定性。
规则 |
示例 |
---|---|
单个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 |