注意
存储库策略目前为 公共预览版,可能会随时更改。 每个组织最多可以有 75 个策略和规则集,每个企业最多可以有 75 个策略和规则集。
若要控制仓库生命周期中的关键事件(例如谁可以创建或删除仓库),可以创建仓库策略。 仓库策略是一系列限制,可让你灵活控制影响的用户和目标仓库。
在仓库策略中,可以限制:
- 允许哪些可见性用于新仓库和可见性变更****。
- 谁可以创建仓库****。
- 谁可以删除仓库****。
- 谁可以从组织中转移仓库****。
- 人员如何命名仓库****。
例子
可以使用仓库策略执行以下操作:
- 确保所有新仓库都使用特定的命名约定,例如
kebab-case。 - 防止删除仓库(组织管理员除外)。
- 只允许在企业的“开放源代码”组织中创建公共仓库。
- 防止将公共仓库更改为专用仓库,以避免潜在的元数据丢失。
创建存储库策略
- 导航到您的企业。 例如,从 GitHub.com 上的 公司 页面。1. 在页面顶部,单击“ Policies”。
- 在“Policies”下,单击“Repository”****。
- 单击“新建策略”。****
- 配置新策略,然后单击“创建”。**** 有关帮助,请参阅以下小节。
策略名称
使用一些描述性的内容来传达策略的目的。 组织所有者可以查看策略,因此好的名称有助于提高清晰度。 例如: Prevent public repos on production。
强制执行状态
如果不想在创建时执行策略,请设置为“Disabled”。 否则设置为“Active”。
允许列表
选择哪些角色可绕过此策略中的限制。****
Targets
选择策略应用于哪些组织和存储库。
目标组织
选择所有组织,选择现有组织,或按名称设置动态列表。 如果使用 Enterprise Managed Users,还可以选择以企业中用户拥有的所有存储库为目标。
如果设置动态列表,则将使用 fnmatch 语法添加一个或多个命名模式。 例如,字符串 *open-source 将匹配任何名称以 open-source 结尾的组织。 有关语法详细信息,请参阅 创建存储库的规则集。
目标存储库
在选定的组织中选择哪个存储库(当前或将来)作为目标。 可以选择所有存储库或按自定义属性设置动态列表。
Policies
选择包含哪些限制。 当策略处于活动状态时,这些限制适用于所有目标仓库,但允许列表中的用户或团队可以绕过这些限制。
如果选择“限制名称”策略,则必须使用正则表达式语法来设置仓库名称必须匹配或不得匹配的模式****。 例如,执行 kebab-case 命名的模式看起来像 ^([a-z][a-z0-9]*)(-[a-z0-9]+)*$。
- 模式支持 RE2 语法。 请参阅 Google 的语法指南。
- 若要验证表达式,请单击“Test pattern”,然后输入模式和测试值****。
委派绕过策略
注意
仓库策略委托绕过功能目前处于公共预览版阶段,后续可能发生变更。
仓库策略的委托绕过功能使你可以控制哪些人员可以绕过仓库删除和可见性更改的仓库策略。
通过委托绕过机制,仓库管理员必须提交请求才能更改仓库可见性或删除仓库。 该请求将被发送至指定的评审组,由评审人员决定是批准还是拒绝绕过仓库策略的请求。
如果绕过仓库策略的请求获得批准,所请求的更改将立即执行。 如果请求被拒绝,则不会执行请求的更改,但允许重新提交请求。
要配置委托绕过功能,企业所有者或组织所有者需先创建"绕过列表"。 绕过列表应包含特定角色和团队(如团队或仓库管理员),这些人员将负责监督绕过仓库策略的请求。
后续步骤
创建规则集,以一致地管理企业存储库中的重要分支。 请参阅“使用规则集保护企业中的分支”。