Repository navigation
Releases: HYGON-AI/quality-gate
Release list
v2.0.8 — Gate reliability and OpenMDW-1.1 admission
v2.0.8:门禁可靠性与已批准许可证支持
- 修复 Python 敏感输出静态分析的分支/循环候选值膨胀,增加去重、预算和进程资源保护。
- 修复 Git 子模块被当作源码 Blob 读取导致误报。
- 防止
.gitattributes、textconv、Ruff 仓库配置及noqa隐藏组织必需检查。 - 改善扫描器镜像、磁盘、权限、超时、缺失/无效报告的安全诊断,保留退出码且不输出原始密钥内容。
- 修复空信息
MemoryError可能被误判通过的边界问题。 - 禁用 Semgrep 离线扫描中多余的联网版本检查,实测约 45.5 秒降至 1.5 秒。
- 自动准入名单加入已批准的
OpenMDW-1.1,原版权和许可证保留规则不变;其他未批准许可证仍需审核。 - 优先使用已有 Python 3.12,增加解释器版本和阶段日志,不修改系统 Python。
四个 Job 名称及 Checks / All required checks 不变;敏感词/密钥提示策略、C/C++ Semgrep 排除范围、扫描镜像均不变。扫描异常仍阻断,不静默跳过。
验证
- 169 项单元测试;30 组真实镜像回归全部符合预期。
- Python 3.9 / 3.11 / 3.12 CI、原生自测与启动环境测试通过。
- nmz1 / nmz4 / nmz6 验证通过。
- Megatron #117 原失败提交重放约 0.13–0.15 秒、峰值约 29 MiB;PyTorch #20 子模块案例通过。
- 合并提交:
5b03a2bb34e471fb3f84d1c22a34175d94eb1761。 - PR #14;主分支 CI;详细验证记录。
@stable 调用方随入口更新生效;固定 @v2.0.7 的调用方保持不变。直接使用 @v2.0.8 时,Runner Group 的 Selected workflows 需允许对应版本引用。
v2.0.7 — 门禁精简与检查分组统一
升级内容
- 三个检查组统一为
Code compliance、Code quality、Code security。 - 保留内部 Job ID 和
Checks / All required checks,现有汇总分支保护不需要修改。 - 移除 PR 门禁中的 Lizard 复杂度扫描、YAML 纯排版规则、ShellCheck style 级诊断和 CRLF 提醒。
- Semgrep 仅扫描 Python/JS/TS;C/C++(包括 CUDA/HIP 相关扩展名)不在本次 PR 安全扫描范围,摘要明确说明,不宣称已经完成安全扫描。
- 保留 ShellCheck 非 style 风险诊断、Ruff 高置信度规则、YAML 语法与重复键、Workflow 有效性和文件完整性检查。
- 保留全部原有身份、版权、许可证、敏感文案策略;Gitleaks 与 Semgrep 的发现仍仅提示。保留扫描的崩溃、未知解析异常、缺失报告继续导致 Invalid Scan。
验证
- nmz6 / Python 3.9:146 项单元回归通过;门禁自测及编译通过。
- 启动环境测试:5 项通过,1 项因未安装 Python 3.8 跳过。
- 生产固定镜像的 26 项完整正反例全部通过:版权与许可证保留/破坏、YAML、多文档和模板、F823、ShellCheck、actionlint、Semgrep Python/JS/TS、C/C++ 排除及混合 PR、复杂度和风格移除、扫描异常保留真实发现。
- 合并提交上再次运行 146 项回归和真实 Gitleaks 检测、提示、脱敏、误报及历史删除密钥场景,均通过。
- 候选 CI:https://github.com/HYGON-AI/quality-gate/actions/runs/35712213704
- 合并 CI:https://github.com/HYGON-AI/quality-gate/actions/runs/35712392891
- 发布提交:
ab2c31c23bbd538947ae2dbd60672c8c196ddaf2,与生产镜像实测候选29a89af代码树一致。
使用与边界
- 固定版本使用
@v2.0.7;集中升级使用@stable。原v2.0.6不改动。 - 现有四个扫描镜像不变,无需 runner 重新导入镜像。
- 本次主动减少了复杂度、风格和 C/C++ SAST 覆盖,不代表这些文件没有安全问题。
- 按本次范围,Ruff 被目标仓库配置屏蔽,以及 Git 属性影响新增行过滤的两项已知漏报风险尚未修复,需后续单独加固。
v2.0.6 — C++ 解析兼容性告警精确降级
v2.0.6 — C++ 解析兼容性告警精确降级
- 修复 rocSHMEM-das PR #33 因 Semgrep 已知 C++ 解析兼容性告警导致门禁阻断。
- 仅匹配已验证的错误类型、code 2、warn 级别、C++ 扩展名、匹配路径及精确 simple-var 文案;显示原始位置。
- 明确展示“覆盖不完整”,不宣称未解析部分已获安全验证,不跳过整个文件或删除其他安全发现。
- 未知解析异常、进程故障、缺失/损坏报告继续阻断;真实阻断项保持原级别。
- 未升级 Semgrep 镜像:候选 1.177.0 仍复现同一错误。
- 保留现有四个 Job 和调用接口;已有固定版本标签不变。
验证:Linux 139 项单元测试通过(含 13 项专项测试);生产镜像对原文件的候选执行器重放得到 0 阻断、1 项带位置的兼容性提示。
线上候选及发布后验证均已完成,见下方运行记录。
线上发布前验证
- 合并提交:1aefa309129aeecc0780ee918c7333f09907829b,与已测试候选代码树一致。
- 修复 PR #12 已合并。
- 候选 CI:139 项单元测试通过。
- 最终线上候选:四个 Job 全通过。
- 故意语法错误反例运行 35569835447、35570109094 均阻断整体门禁,安全发现仍保留;未知解析错误强制失败由专项单元测试覆盖。
发布后验证
实际 @stable 调用 四个 Job 全通过;摘要显示 v2.0.6,原 C++ 解析限制保留为覆盖不完整提示。stable 与 v2.0.6 均指向发布提交 1aefa30。
v2.0.5 — 低噪声摘要与许可证声明保护
v2.0.5 — 低噪声摘要与许可证声明保护
修复
- 版权/SPDX 声明比较忽略换行、空白及常见注释包装;保护跨行的原权利人名称。
- 识别完整标准 MIT、BSD-3-Clause 正文和 Apache-2.0 声明头;无 SPDX 时不机械要求改头。
- 删除原传统许可证条款或免责声明仍阻断,即使保留 Copyright 或新增 SPDX。
- 修复独立 AmD/XgMi 混合大小写词漏检;保持提示、不阻断,不扩大为任意子串匹配。
摘要
- 保留四个 Job/检查名称;无适用文件显示“无需检查”。
- 结论、计数、实际版本及执行 SHA 在前,范围/工具详情折叠。
- 内置检查使用具体名称,同位置阻断诊断合并展示但保留证据与原始计数。
- 成功措辞:质量门禁通过;是否可合并以仓库保护规则为准。
保持不变
- 密钥发现脱敏且仅提示;扫描器执行失败仍是 Invalid Scan。
- 不自动修改上游声明,不推断 H1/H2/H3 或原创归属;未知来源的新文件缺头只提示。
- 完整模板识别有明确范围,不把未知/残缺许可证判为已准入;扫描受配置行数限制。
v2.0.4及更早标签不变;stable更新到本版本后,原@stable调用自动使用新版。
验证
发布前执行 Linux 原生自测、全部单元回归、启动环境测试、真实扫描器集成及消费仓库测试 PR。
实际运行链接与结果见发布记录;不将“测试存在”当作“测试已通过”。
发布验证记录
-
发布提交:50433a6fdcbb6e2db845b4e09098bc300826c3dd;与已审核测试候选代码树一致。
-
合并后 CI通过:126项单元回归、原生自测、编译与真实Gitleaks测试。
-
集群启动测试6/6通过(覆盖云端缺少Python3.8而跳过的用例)。
-
集群真实扫描器场景21/21符合预期(15项原有场景、6项传统许可证专项)。
-
消费仓库测试通过:完整MIT传统头无需SPDX,敏感文案仅提示。
-
实现与审核 PR #11。测试PR #33仅供验证,禁止合并。
-
发布后验证:实际 @stable 调用四个 Job 全通过,摘要版本 v2.0.5;Workflow 引用 SHA 为 stable 的注释标签对象 e00a515ae562d25964ca63247d7a6e4c9104cda2,日志确认实际检出发布提交 50433a6。
v2.0.4
主要更新
- 修复 Kubernetes 多文档 YAML 误报;保留真实语法错误、重复键及 Actions 文档结构检查。
- 修复数字/空值键与同名字符串键的误报,统一原生检查与 Yamllint 的精确判断。
- 模板 YAML 标记为需渲染验证,不把未验证的模板宣称为语法通过。
- Gitleaks 疑似密钥改为脱敏提示、不强制阻断;扫描器失败仍判定扫描无效。
- 模糊的 AMD/XGMI 等词语匹配改为提示,减少子串误匹配与重复注解,保留完整提示详情。
- 增强 Runner Python 启动兼容性,并固定 Shell 脚本 LF 换行。
验证记录
- 43 项单元回归、6 项 Runner 启动测试、原生自测通过。
- 生产扫描镜像 15 个集成场景通过,覆盖正常输入、应阻断输入及扫描失败处理。
- 真实 Gitleaks 验证了疑似密钥提示、脱敏、占位符过滤、dtype 比较及 PR 历史中的已删除密钥。
- GitHub CI:https://github.com/HYGON-AI/quality-gate/actions/runs/35506438770
- 发布提交 6fd4b43 的文件树与已验证提交 a20ee58 一致。
升级方式
调用仓库使用:
uses: HYGON-AI/quality-gate/.github/workflows/pr-quality-gate.yml@v2.0.4若质量 Runner Group 使用 Selected workflows,需要先新增允许项:
HYGON-AI/quality-gate/.github/workflows/pr-quality-gate.yml@refs/tags/v2.0.4
迁移期间保留 v2.0.3 允许项,避免中断未升级仓库。本次发布不自动升级任何调用仓库。
已知边界
- dtype 比较仍可能被 Gitleaks 提示,但不再阻断。
- 仅修改注释的历史语法问题处理是保守规则,并非豁免所有历史问题。
- 已有合成场景及已知问题回归不能保证所有业务仓库零误报;建议先小范围试用再推广。
完整变更:v2.0.3...v2.0.4