配置项目级的代码仓库设置
在代码托管首页,进入项目首页,选择“设置” > “策略设置” > “仓库设置”。参数填写请参见表格表1。
参数 |
说明 |
---|---|
开启强制继承 |
非必填参数。如果勾选此参数,本项目下的所有代码组和代码仓库均使用以下参数的设置,且代码组和仓库下设置不可更改,请谨慎选择。 |
禁止Fork仓 |
非必填参数。勾选此选项,表示任何人不可以Fork该项目下的代码仓库。 |
MR预合并 |
非必填参数。勾选此选项,表示启用MR预合,服务端会自动生成MR预合并的代码,相比客户端使用命令做预合并操作更高效简洁、构建结果更准确,适用于对构建实时性要求严格的场景。 |
分支名规则 |
非必填参数。所有分支名都必须匹配正则表达式,分支名规则不能超过500个字符。如果此字段不填写,则允许任何分支名。规则需要满足基本的Tag命名规则:
|
Tag名规则 |
非必填参数。所有Tag名都必须匹配正则表达式。如果此字段不填写,则允许任何Tag名。 需满足基本的Tag命名规则:
|
配置项目级的保护分支规则
CodeArts Repo可以保护代码分支的安全性,阻止管理者外的人推送代码、阻止任何人强行推送代码或者阻止任何人删除这个分支,您可以将这个分支设置保护分支。具体具体操作过程如下:在代码托管首页,进入项目首页,选择“设置” > “策略设置” > “保护分支”,单击“新建保护分支”,请根据如下步骤填写参数:
- 填写分支名称。该参数必填,请您根据自己的需要输入完整的分支名或者带通配符的分支名。如果分支中包含单斜杠(/),由于fnmatch语法规则,该分支无法用通配符“*”匹配。
- 可以为管理员/项目经理、committer和开发人员设置推送或者合并的权限,两种权限不能同时拥有,原因是保护分支不能强行被推送代码或者合入代码,支持批量新建、编辑、删除保护分支。
如果您想让本项目下所有代码组和仓库均使用以上设置,勾选“开启强制继承”即可。
配置项目级的合并请求规则
合并请求规则包含三个部分:合入机制、合入条件、MR设置和合并模式。
参数 |
说明 |
---|---|
合入机制 |
必填参数。包含两个选项:
|
参数 |
说明 |
---|---|
合入条件 |
非必填参数。包括两个选项:
|
参数 |
说明 |
---|---|
禁止合入自己创建的合并请求 |
勾选后,您在查看自己创建的MR时,“合入”按钮置灰,表示自己无法合入代码,需要找其他有合入权限的人合入。 |
禁止审核自己创建的合并请求 |
勾选后,您在查看自己创建的MR时,“审核”按钮置灰,自己无法审核,需要找其他有审核权限的人审核。 |
禁止检视自己创建的合并请求 |
勾选后,您在查看自己创建的MR时,“检视”按钮置灰,自己无法检视,需要找其他有检视权限的人检视。 |
允许仓库管理员强制合入 |
项目创建者和管理员有强制合入的权限,当合入条件不满足,也可通过“强行合并”按钮合入MR。 |
允许合并请求合并或关闭后继续做代码检视和评论 |
勾选后,已合入MR可继续做代码检视、评论。 |
是否将自动合并的MR状态标记为关闭状态(如果B MR中的所有commits都包含在A MR中,那么当A MR合并后,则B MR会自动合并。默认B MR会标记为merged状态,可以通过该选项控制将B MR标记为Closed状态) |
|
不能重新打开一个已经关闭的合并请求 |
勾选后,当分支合并请求已经关闭后,不能将其重新置回“开启”状态,右上方的“重开”按钮将隐藏。 此设置一般用于流程管控,使历史评审不会被篡改。 |
新建合并请求,默认开启合并后删除源分支 |
勾选成功后,新建MR默认开启“合并后删除源分支”。开启且合并成功后,源分支将被删除。
|
禁止Squash合并 |
勾选成功后,“Squash合并”按钮被禁止,且合并请求中无该功能使用入口。
|
新建合并请求,默认开启Squash合并 |
Squash合并是指Git在做两个分支间的合并时,会把被合并分支上的所有变更“压缩(squash)”成一个提交,追加到当前分支的后面作为“合并提交”(merge commit),可以使分支变得简洁。Squash合并和普通Merge合并唯一的区别体现在提交历史上:对于普通Merge而言,在当前分支上的合并提交通常会有两个提交信息;而Squash Merge只有一个提交信息。 |
配置项目级的成员同步
进入项目首页,选择左侧导航栏“代码”>“代码托管”,选择“设置” > “安全设置” > “成员同步”。
开启“同步项目成员”后,勾选要同步的角色,开启后,自动同步所选角色项目成员至代码组及仓库,项目经理不依赖开关始终同步,可单击刷新按钮触发一次全量同步。
当项目成员有新增、删除或者修改,实现自动同步。
历史项目的“同步项目成员”默认关闭,新建的项目默认开启此功能,且默认勾选“项目经理”、“Committer”和“开发人员”。