质量门禁是什么
质量门禁(Quality Gate)在流水线的关键节点设置自动检查,并具备阻断能力:单元测试、静态扫描、覆盖率、依赖漏洞、许可证与变更合规等。它把质量标准从评审会上的人情判断变成可重复执行的规则。有效门禁有三个前提:标准透明、结果可解释、例外可申诉且有期限。
基本信息
| 常用检查项 | 测试、静态扫描、覆盖率、依赖漏洞、许可证、变更合规 |
|---|---|
| 核心原则 | 自动执行、标准透明、能够阻断、例外受控 |
| 例外机制 | 登记理由与时限,到期复核并清理 |
| 适用平台 | GitLab CI、Jenkins、GitHub Actions、云效等流水线 |
| 输出 | 门禁结果报告、例外登记表、阻断记录 |
典型使用场景
- 合并请求阶段拦截明显缺陷与敏感信息硬编码,降低返工成本
- 阻止高危依赖漏洞进入生产,配合修复时限形成闭环
- 用覆盖率不下降规则防止新增代码完全无测试
- 发布阶段核查变更单关联与安全扫描结果,满足审计要求
- 开源组件引入前检查许可证兼容性,避免合规风险
分级门禁示例
分级门禁示例
# PR 阶段:快、便宜、必过,主要用于拦低级问题
PR:单测 + lint + 敏感信息扫描(密钥、令牌硬编码)
# 合并阶段:质量与依赖红线,代价高所以要精选规则
合并:覆盖率不下降 + 依赖高危漏洞阻断
# 发布阶段:合规与运行准备,关联变更记录
发布:安全扫描 + 变更单关联 + 回滚方案确认
# 规则要分级:阻断项与告警项分开,否则门禁会被整体绕过门禁失败处理
| 情形 | 动作 |
|---|---|
| 高危依赖漏洞 | 阻断合并并限期修复,跟踪到关闭 |
| 覆盖率下降 | 补充用例后重跑,不接受口头说明 |
| 明确误报 | 登记例外并设定复核期,到期自动提醒 |
| 新增规则未适配历史代码 | 先增量生效,存量单独排期治理 |
门禁规则不是越多越好:阻断项过多会让团队整体绕过或习惯性申请例外,优先保留高价值、低误报的规则,再逐步增加。