规则集不生效仓库规则集启用模式与快速排查指南【免费下载链接】docsThe open-source repo for docs.github.com项目地址: https://gitcode.com/GitHub_Trending/do/docs本文基于 GitHub Docs 仓库解读规则集Ruleset即仓库规则的启用机制。如果你正遇到「规则集已配置、界面显示启用推送却依然放行」的困境可以按这里的排查路径快速定位规则集不生效的真正原因。 规则集启用模式Enforce、Evaluate 与规则叠加先说结论规则集本身没有优先级多个规则集同时命中同一分支时规则会叠加同一规则取最严格版本生效。这一点和很多人的直觉相反——不存在上级规则覆盖下级规则也不存在谁先创建谁说了算。两种执行状态每个规则集在创建时都要选择执行状态这是排查不生效的第一站Enforce强制执行违规操作被直接拒绝推送被阻止、合并被卡住Evaluate评估只记录违规不拦截任何操作。即使状态栏显示规则集处于激活中它也不会挡下任何提交一个典型误解新规则集默认以 Evaluate 模式试运行团队以为是规则没配好其实规则一直在正常观察。官方说明见 about-rulesets。规则叠加与分支保护共存规则集和旧的分支保护规则可以共存两者全部生效。另外注意容量上限每个仓库最多 75 个规则集组织级规则集同样上限 75 个。企业版客户见 repo-rules-enterprise.yml还支持元数据限制、组织级规则集和规则集洞察等增强能力。 一个真实排查示例显示 Enforced 却拦不住推送假设你给main分支建了规则集要求签名提交 提交信息匹配[JIRA-123]前缀状态是 Enforce。某同事的推送却顺利通过了。别急着怀疑规则集坏掉按下面顺序走一遍这个案例的真相是推送者所在团队被加进了绕过名单。绕过权限可以授予角色如仓库管理员、团队或 GitHub App绕过者会直接跳过规则连违规记录都不产生——所以审计日志里一片安静也很正常。官方排查思路参考 troubleshooting-rules。⬆️ GHES 版本规则集能力对照自托管环境GitHub Enterprise Server的规则集能力随版本增长明显升级前心里要有这张表版本规则集相关变化3.10 之后规则集公开测试基础分支/标签保护能力repo-rules.yml 标记为 ghes 3.103.15 及以上支持在新分支上跳过状态检查与工作流的强制ignorecheck 特性要求 ghes 3.153.17推送规则集正式可用按文件类型、路径、大小拦截对私有/内部仓库及其 fork 的推送支持审计日志、Evaluate 模式、绕过名单标签保护规则迁移为规则集原功能下线3.18企业级规则集上线新增合并方式规则可限定 squash/merge/rebase3.19规则集历史、导入/导出功能正式可用支持回滚与跨仓库复用3.20企业团队可加入规则集绕过名单3.21支持将特定行为者从所有规则集行为中完全豁免企业角色、团队、App 可作为企业规则集的绕过者版本细节可查发布说明 3-17/0.yml。 升级前必查的规则清单核对标签保护规则升级到 3.17 时标签保护功能会被规则集取代并移除先确认旧规则已迁移、行为等价确认元数据规则是否适用提交信息、作者邮箱等元数据限制属于企业级特性低版本或套餐不符时规则根本不会挂载清点绕过名单3.20/3.21 新增的企业团队与企业角色通道会扩大豁免面升级后建议复查每个规则集的 bypass actors留意推送规则集的容量边界单次推送最多 1000 个引用更新超过即整体拒绝REST API 的创建 blob/tree、更新文件内容接口同样受推送规则约束 规则未触发时的快速定位对照表现象常见原因处理方式状态显示 Enforced推送仍通过推送者在绕过名单换无权限账号复测检查 bypass 配置规则激活但什么都没拦截实际处于 Evaluate 模式切换为 Enforce 重新验证分支名看起来匹配却没命中fnmatch 模式书写问题用releases/**/*这类模式逐个验证配置了状态检查合并却没被卡Evaluate 模式下检查会运行但不要求通过或检查名格式错误Workflow 用job name可复用工作流用job name / reusable job name核对模式与名称格式组织级以上规则集的检查名不支持索引需手动填精确名称推送规则集没拦住大文件规则定义了 allowed exceptions 例外或文件恰好不在限制范围内查看规则例外配置规则洞察里没有记录洞察只在 PR 合并或尝试合并后才记录合并/尝试合并后再回看带走清单先看执行状态再怀疑配置——Evaluate 只记录、不拦截是最常见的假启用用普通账号复测你在绕过名单里时规则对你是隐形的多个规则集叠加时以最严格版本为准排查冲突规则要按聚合而非覆盖思考GHES 环境先对照版本能力表再迁移标签保护和元数据规则是升级时的两个重灾区更多细节可以查阅 about-rulesets 与 规则集故障排查文档。【免费下载链接】docsThe open-source repo for docs.github.com项目地址: https://gitcode.com/GitHub_Trending/do/docs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
