跳转到内容
免费试用 Gitea Cloud ☁️ 30 天,加速你的开发与部署!
技术支持

可继承的分支保护(Inheritable Branch Protection)

开源 Gitea 项目支持分支保护(Branch Protection)功能。您可以创建一些规则来保护仓库中指定的分支。 然而,在开源 Gitea 项目中,一个仓库无法与其他仓库共享其规则,这意味着您可能需要为不同的仓库手动创建相同的规则。

Gitea Enterprise 提供了分支保护继承功能。借助此功能,您可以为某个组织创建分支保护规则,并使其在该组织的所有仓库中生效。

本文档介绍如何使用分支保护继承功能。

  1. 进入组织的设置页面。
  2. 进入 Branches 标签页。
  3. 点击 Add New Rule 按钮。

接下来,您可以像为仓库创建规则一样,为组织创建分支保护规则。

组织分支保护规则

让仓库继承其组织的分支保护规则

Section titled “让仓库继承其组织的分支保护规则”
  1. 进入仓库的设置页面。
  2. 进入 Branches 标签页。
  3. 勾选 Enable branch protection inheritance 复选框。

从组织继承而来的分支保护规则会在列表中显示,并带有 Inherited from organization 标签。 如果您对该组织拥有管理员权限, Inherited from organization 标签会作为链接,跳转到该组织的分支设置页面。

仓库分支保护规则

继承的分支保护规则优先级高于仓库自身的规则。

您可以勾选 Force enable branch protection inheritance 复选框, 强制让该组织下的所有仓库都继承该组织的分支保护规则。

组织强制继承

启用强制分支保护继承后, Enable branch protection inheritance 复选框将始终处于勾选状态,且无法取消勾选。

仓库强制继承

控制状态检查上下文的合并方式

Section titled “控制状态检查上下文的合并方式”

当组织规则启用了必需的状态检查(Required Status Checks)时,您可以选择一种 状态检查上下文策略(Status check contexts strategy),来决定组织的上下文与仓库特定上下文之间的交互方式:

  • Owner only(默认):仅强制执行组织所要求的上下文,仓库规则无法添加或覆盖该列表。
  • Merge:组织的上下文始终是必需的。如果仓库规则也启用了状态检查,则其上下文会被追加进来,重名的上下文会被去重。
  • Repository only:仓库的上下文将替代组织的列表。

从 Gitea Enterprise v26 开始,一个分支保护规则可以包含一个或多个路径权限规则。每个路径规则都作用于与分号分隔的 glob 模式列表相匹配的文件路径,并带有可选的排除模式列表,用于控制谁可以向这些路径推送变更。

  • 第一个匹配的路径规则决定该路径的处理方式。未匹配任何路径规则的路径将回退到分支级别的保护检查。
  • 每个路径规则使用以下三种推送模式之一:
    • 禁止推送(none:任何人都不能向匹配的路径推送。
    • 所有有写权限的用户(all:对仓库具有写权限的用户可以向匹配的路径推送。
    • 白名单(whitelist:只有选定的用户和团队可以向匹配的路径推送。
  • 您可以使用 测试路径(Test a path) 操作,预览已保存的规则对一组路径的评估结果。

路径权限规则同时适用于组织级和仓库级的分支保护规则,并像其他规则设置一样被继承。