- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 快速入门
-
用户指南
- 代码托管(CodeArts Repo)使用流程
- 购买并授权使用Repo
- 环境和个人配置
- 访问CodeArts Repo首页
- 新建并配置CodeArts项目
- 配置Repo项目级设置
- 管理Repo成员权限
- 新建Repo代码仓库
- 迁移代码与同步仓库
- 配置Repo代码仓库设置
- 分层管理代码仓
- 设置仓库
- 克隆/下载代码仓库到本地
- 上传代码文件到Repo
- 开发协作工作流
- 提交代码到Repo并管理合并请求
- 管理代码文件
- Repo代码仓的安全管理
- 最佳实践
-
API参考
- 使用前必读
- API概览
- 如何调用API
-
API
- SSH Key
-
Repository
- 获取分支目录下的文件
- 获取仓库统计数据
- 获取一个仓库下特定分支的图片文件
- 修改被流水线引用的仓库状态
- 判断用户是否有仓库的管理员权限
- 设置仓库是公开状态还是私有状态
- 获取一个仓库下特定分支指定文件内容
- 获取公开示例模板列表
- 创建仓库
- 根据仓库名组名获取仓库短id,用以拼接与commitid对应提交详情页面url
- 根据组名和仓库名查询某仓库某分支对应的提交
- 查询某仓库对应的分支
- 根据仓库id查询仓库某分支对应的提交,提供更多可选参数
- 添加部署密钥
- 删除仓库部署密钥
- 获取仓库上一次的提交统计信息
- 仓库统计
- 删除仓库
- 查看仓库的创建状态
- 查询某仓库的标签列表
- 新建标签
- 查询某个仓库的详细信息
- 获取代码提交行数
- 下载仓库
- 新建保护分支
- 删除保护分支
- 批量删除保护分支
- 新建保护tag
- 删除保护tag
- 获取仓库分支列表
- 获取仓库合并请求列表
- 获取仓库合并请求详情
- 获取仓库ip白名单
- 添加仓库ip白名单
- 修改仓库ip白名单
- 删除仓库ip白名单
- 获取合并请求的变化
- 关联仓库与成员组
- 根据仓库短ID锁定仓库
- 根据仓库短ID解锁仓库
- 审核合并请求
- 获取关联工作项信息
- 根据仓库短ID和合并请求短ID获取检视人信息
- 获取变更文件列表
- Tenant
- Group
- V2Project
- RepoMember
- Commit
- File
- User
- Webhook
- Project
- v2仓库管理
- Discussion
- 应用示例
- 附录
- 历史API
-
常见问题
- 认证鉴权问题
- 成员权限问题
-
代码上传下载问题
- 从本地推送代码仓到CodeArts Repo时,报错"Error: Deny by project hooks setting 'default': message of commit"
- 用户推送二进制文件到CodeArts Repo失败
- 执行git push 命令时,报错'origin' does not appear to be a git repository...
- 在CentOS系统下使用HTTPS协议克隆代码时,报错"The requested URL returned error: 401"
- 使用git pull拉取CodeArts Repo的代码失败,报错"Merge branch 'master' of https://test.com Please Enter a commit"
- push文件时客户端提示连接断开
- fatal: refusing to merge unrelated histories
- 如何阻止涉密文件被推送到CodeArts Repo代码仓库
- 仓库迁移问题
- 合并请求问题
- Fork同步问题
- 仓库容量问题
- 常见问题汇总
- 视频帮助
- 计费说明
- 文档下载
- 通用参考
链接复制成功!
配置提交规则
什么是提交规则
CodeArts Repo支持为代码的提交建立校验、限制规则,以确保代码质量。本章节将介绍“配置项目级的提交规则”及“常见的正则表达式示例”。
在配置提交规则前,用户请先查看约束与限制。
满足配置权限的用户可以根据表1为项目下的所有仓库设置相同的提交规则。在配置规则过程中,用户可以参考常见的正则表达式示例。
配置项目级的提交规则
在代码托管首页,进入项目首页,选择“设置” > “策略设置” > “提交规则”。
如果用户想对项目下的所有仓库设置相同的提交规则,请按照表1填写参数,并勾选“开启强制继承”。
字段 |
说明 |
取值样例 |
---|---|---|
拒绝未Signed-off-by签名的提交 |
Signed-off-by签名用于记录对代码进行修改的开发人员,表示该开发者正式认可所提交的内容,并愿意承担相应责任。这种方法有助于确保贡献的质量,并提供透明的方式来追踪贡献者。 如果勾选,表示只允许Signed-off-by签名的提交才能推送到仓库。 当前支持以下两种方式签名:
在代码托管服务中进行在线commit时,编写提交信息需采用以下格式: commit message #此处填写自定义提交信息。
#此处为空行。
Signed-off-by:自定义签名 #此处在“Signed-off-by:”后面填写自定义签名。
在Git客户端进行commit时,执行如下命令,“-s”表示在提交信息中添加签名(Signed-off-by),用户需要参考相关操作,提前在客户端配置好签名和邮箱。 git commit -s -m “用户的提交备注” |
勾选此选项后,使用示例如下:
在线提交文件时,需要按照如下图所示的格式填写提交信息,否则会报错“拒绝推送未签名的提交” 。
在本地Git客户端提交时,执行如下命令,表示把更改提交到版本控制系统中,提交信息是“New File”。 git commit -s -m "New File" 执行完后,可继续执行git show查看签名效果。 |
拒绝未GPG签名的提交 |
如果勾选此选项,表示只允许GPG签名的提交才能推送到仓库。用户可参考配置GPG公钥配置。 Git客户端签名方式: 在Git客户端进行Commit时,需增加“-S”参数,表示提交时使用GPG(GNU Privacy Guard)签名来验证提交者的身份。 git commit -S -m "用户的提交备注" 当用户使用Git客户端进行Tag时,需增加“-s”参数,表示在创建标签时使用GPG签名来验证标签的真实性。 git tag -s "用户的标签备注" |
勾选此选项后,用户执行如下命令,提交信息为“update readme”。 git commit -S -m "update readme" 执行成功后,如下图所示,会提示用户输入GPG密钥的密码。 如下图所示,用户可以继续执行如下命令,查看GPG签名提交的记录。 |
不允许删除Tags |
勾选后,禁止通过在线或者通过客户端命令的方式删除Tags。 |
勾选此选项后,在删除任意Tag时,会报错“提交规则设置不可删除tag” 。 |
阻止包含涉密文件的提交 |
涉密文件名包含“id_rsa”和“id_dsa”文件。勾选此选项后,在线或本地提交新建文件时,文件名包含“rsa”、“id_rsa”、“dsa”或者“id_dsa”均会报错。 |
勾选此选项后,新建文件名称为“test_id_rsa”时,会报错“文件 test_id_rsa可能包含敏感信息,禁止提交”
|
拒绝使用git push -f命令提交代码 |
配置是否允许用户在客户端使用git push -f命令提交代码。 由于git push -f表示将目前用户本地的代码库推送到Repo并覆盖,推荐勾选此选项。 |
勾选此选项后,本地执行git push -f命令时,会出现如下图所示的回显,报错 “CodeArts Repo: You are not allowed to force push code to a protected branch on this repository.”。 |
如果用户想对项目下仓库的指定分支设置提交规则,请用户单击“新建提交规则”,参数填写请参见表格表2。
参数名 |
参数说明 |
取值样例 |
---|---|---|
规则名称 |
必填参数,自定义规则名称。 |
Test_Rule |
分支规则 |
必填参数,需要输入完整规则名或创建一个正则表达式。需要对输入进行校验,包括分支名的校验和正则表达式校验。 |
“Branch_*”,表示所有的分支名都需要以“Branch_”开头。 |
提交规则 |
非必填。
|
更多正则表达式规则可参考常见的正则表达式示例。 |
文件基本属性规则 |
非必填。
|
|
二进制规则 |
非必填。为保证仓库性能,建议用户勾选“禁止新增二进制文件(对特权用户无效)”选项。 二进制规则默认不勾选,默认勾选“禁止禁止新增二进制文件(对特权用户无效)”。“允许修改二进制文件(对特权用户无效)”勾选后,提交文件为modify状态的二进制文件不会拦截,可直接上传。二进制文件可以直接删除,不会进行二进制检查。
|
示例:勾选“禁止新增二进制文件(对特权用户无效)”选项。 |
规则生效时间 |
非必填。 在生效日期之后创建的所有提交都必须与hook设置相匹配才能被推送。如果此字段为空,则无论提交日期如何,都将检查所有提交。 |
示例:2025/4/15。 |
常见的正则表达式示例
常见的正则表达式示例可参考常见的正则表达式示例。
规则 |
示例 |
---|---|
单个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 |
git config --global user.name "用户的名字"
- 执行如下命令,在Git设置全局邮箱。
git config --global user.email "用户的邮箱地址"