
GitHub Docs 规则集启用完全指南这 3 个场景为什么拦不住推送【免费下载链接】docsThe open-source repo for docs.github.com项目地址: https://gitcode.com/GitHub_Trending/do/docs在 GitHub Docs 开源文档仓库里翻规则集Ruleset资料时发现一个扎心的现实规则明明显示已启用违规的提交却照常进了仓库。Ruleset 启用状态、版本差异、绕过名单任何一环没对上你的规则就是摆设。这篇文章不讲功能清单只解决一个问题——规则集不生效怎么办。版本时间线你的 GHES 到底支持哪些规则集能力规则集不是一块铁板它是按版本一块块长出来的。判断规则集启用了为什么没反应之前先确认你的 Enterprise Server 版本有没有那块能力。版本规则集相关能力对你意味着什么3.113.10仓库规则集公开 Beta含组织级规则集、元数据限制、规则集洞察等增强项规则集功能的地基见 仓库规则集特性文件 与 企业级特性文件3.12必需工作流规则可把指定 Actions 工作流设为合并前置条件3.14部署密钥、Dependabot 成为可配置的绕过对象之前没法给这两类主体开绿灯3.15新建分支可跳过状态检查与流程执行合并队列规则推送规则委托绕过新分支首推不再被自己的规则卡死3.16企业所有者成为规则集的默认绕过角色绕过名单默认值变了审计时要留意3.17推送规则集 GA标签保护规则退役并入规则集标签保护不再单独存在见 3.17 发布说明3.18合并方式规则、企业级工作流规则合并行为也能被规则约束3.19规则集历史与导入/导出规则集管理换环境、换仓库时规则可以带过去3.23分支保护规则一键转换为规则集老配置可以平滑切换到规则集GHES 规则集版本差异的实操结论只有一条先在 data/features/ 目录里用你的版本号对一下特性文件的versions.ghes字段确认能力存在再谈规则配置。启用了为什么没拦住3 个最容易误判的场景场景一规则看着已启用其实没轮到你的分支你看到的现象Rules 页签里规则集状态是 Enabled但往release/*分支推代码照样成功。真正的原因规则集的 target 匹配的是模式而不是分支名。你的规则可能写的是branches: main或者匹配的是 tags而这次推送的目标根本不在模式范围内。规则没失效是压根没被选中。怎么纠正打开规则集的 Target 一栏拿实际推送的分支名去套一遍模式推送规则集push ruleset还要确认仓库可见性符合——它只作用于 private 和 internal 仓库及其 fork见 3.17 发布说明。场景二这个人有权绕过连他自己都没意识到你看到的现象同一个违规操作A 用户被拦B 用户畅通无阻。真正的原因B 落在绕过名单里。绕过不是显式加人一条名单那么简单企业所有者在 3.16 起默认就是绕过角色组织/企业级设置的绕过范围也会向下传导到仓库规则集。怎么纠正对照规则集的 bypass 配置确认执行操作者的角色企业级配置参见 企业代码规则集特性文件 与 推送规则委托绕过特性文件。必要时把绕过权限收窄到具体人而不是角色。场景三模式开关停在 Evaluate你以为在拦截你看到的现象审计日志里全是违规记录但没有任何一次推送被真正拒绝。真正的原因规则集处于 Evaluate评估模式。这个模式只记录如果启用会拦下什么不产生任何拦截动作常被误读成规则没启用。怎么纠正把模式切到 Enforce。Evaluate 与 Enforce 模式的区别就一句话——前者是记账后者才是动手。切换前可以先用评估记录确认误报率再收紧。相关行为说明见 ignorecheck 特性文件。升级 GHES 之前把迁移清单逐条勾掉升级最大的风险不是升级本身而是旧机制在某个版本静默退役。以标签保护为例3.17 发布说明 明确写明标签保护规则在 3.17 迁移为规则集原功能不再可用。标签保护迁移规则集这件事建议按下面的顺序走在现有版本中列出全部标签保护规则记录每条规则的目标标签、允许范围与生效人员用规则集 API 或界面为每条规则创建等价的 tag ruleset先以 Evaluate 模式跑在测试仓库验证合法打标签放行、非法打标签被记录确认无误后将新规则集切到 Enforce在升级窗口完成旧标签保护规则的下线升级后抽查审计日志确认规则集事件正常产生各版本兼容性结论一句话版3.14 及以下绕过能力有限部署密钥与 Dependabot 不在可绕过名单内迁移前先把这两类主体的诉求记下来。3.16默认绕过角色加入企业所有者升级后绕过行为会变宽提前评估。3.17标签保护不可逆未完成迁移的规则升级后直接失效这是唯一必须升级前完成的事项。花 5 分钟确认规则集真的在生效验证按成本从低到高排看界面仓库 Rules 页签里确认规则集存在、状态为 Enabled、模式为 Enforce、target 模式覆盖你的分支。查日志审计日志里搜 ruleset 相关事件有触发记录说明规则被选中过。打一发真实测试用一个受控测试分支做一次违规推送看是被拒、还是只被记录。如果三步都过了还是不生效问题多半出在更上层排查时建议从模式开关开始而不是从版本开始——Evaluate 忘切是最高频的坑成本也最低。按仓库敏感级别选规则集别一把梭规则集不是越重越好。组合方式参考下表具体规则类型以仓库内 可用规则文档 为准仓库级别建议组合重点约束公开/低敏基础分支规则集合并需审查、状态检查通过即可内部迭代分支规则集 推送规则集限制大文件与危险路径、要求签名提交敏感/合规企业级规则集 推送保护 必需工作流密钥与敏感文件全拦、强制安全扫描工作流落地时给每个仓库打上分类标记3.16 可用元数据做分类企业级先配模板、仓库级只做加法别在仓库层面私开绕过口子。最后规则集不生效从来不是单一原因版本不支持、模式停在评估、target 没匹配上、人被默认绕过四个坑各占一半概率。用版本时间线定位能力边界用现象—原因—纠正过一遍误判场景再用 5 分钟验证法收尾绝大多数启用了却没拦住的情况都能当场解决。更多一手素材可以翻仓库内的 规则集特性文件、企业级规则集特性文件、推送规则集相关说明 以及 规则排障文档它们比任何二手解读都新。【免费下载链接】docsThe open-source repo for docs.github.com项目地址: https://gitcode.com/GitHub_Trending/do/docs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考