GitHub Rulesets 可阻止带有新密钥告警的 Pull Request 合并
GitHub 在仓库 Rulesets 中加入新的 secret scanning 告警解析规则,可在 Pull Request 引入未处理的密钥告警时阻止合并,并支持按密钥类型进一步配置。
作者:核流 Admin · 栏目:资源
GitHub 的仓库 Rulesets 现在可以在 Pull Request 引入密钥扫描告警时阻止合并。新规则要求对应告警先得到处理,适合把密钥防护从“推送前拦截”延伸到代码评审阶段。当前功能面向拥有 GitHub Secret Protection 或 GitHub Advanced Security 的客户开放公共预览。 影响范围由 Ruleset 指定的仓库和分支决定,启用前应先确认哪些代码路径会被这条规则拦下。规则本身负责阻止合并,不负责修复已经暴露的密钥,后续仍要按组织流程处理。 合并前会检查两件事 新规则名为 Require secret scanning alerts are resolved。没有绕过权限的开发者,需要处理每一条由当前 Pull Request 引入的密钥告警。规则会确认两点:目标提交的密钥扫描已经完成,以及 Pull Request 提交引入的告警没有处于打开状态。 默认情况下,规则会检查供应商模式识别出的密钥。团队还可以把自定义模式或通用模式纳入阻断范围。它和 push protection 的分工不同,push protection 在密钥进入仓库前拦截;Rulesets 这一层则能覆盖未启用某类推送防护,或密钥在评审流程里才被识别的情况。 如何在仓库里启用 进入仓库、组织或企业设置中的 Repository > Rulesets。 新建或编辑一个 Ruleset,选择需要保护的目标分支。 勾选 Require secret scanning alerts are resolved 并保存。 团队也可以通过 REST API 使用 require_secret_scanning_alert_resolution 规则类型,并以 secret_types 指定范围;GraphQL 对应的枚举值是 REQUIRE_SECRET_SCANNING_ALERT_RESOLUTION。适合先在少量仓库试运行,再把规则扩到组织范围。开始配置前,可从 Rulesets 文档确认分支目标与绕过权限的行为。 参考资料 GitHub Changelog:Block pull requests with exposed secrets from merging GitHub Docs:About rulesets GitHub Docs:About push protection