Skip to content

Releases: HYGON-AI/quality-gate

v2.0.8 — Gate reliability and OpenMDW-1.1 admission

Choose a tag to compare

@lvj-repox lvj-repox released this 19 Oct 07:23
5b03a2b

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 — 门禁精简与检查分组统一

Choose a tag to compare

@lvj-repox lvj-repox released this 22 Sep 09:56
ab2c31c

升级内容

  • 三个检查组统一为 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++ 解析兼容性告警精确降级

Choose a tag to compare

@lvj-repox lvj-repox released this 21 Sep 06:58
1aefa30

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 项带位置的兼容性提示。
线上候选及发布后验证均已完成,见下方运行记录。

线上发布前验证

发布后验证

实际 @stable 调用 四个 Job 全通过;摘要显示 v2.0.6,原 C++ 解析限制保留为覆盖不完整提示。stable 与 v2.0.6 均指向发布提交 1aefa30。

v2.0.5 — 低噪声摘要与许可证声明保护

Choose a tag to compare

@lvj-repox lvj-repox released this 20 Sep 12:59
50433a6

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

Choose a tag to compare

@lvj-repox lvj-repox released this 20 Sep 11:13
6fd4b43

主要更新

  • 修复 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

v2.0.3

Choose a tag to compare

@lvj-repox lvj-repox released this 25 Aug 04:18
894a263
Merge pull request #6 from HYGON-AI/fix/v2.0.3-remove-dependency-scan

fix: remove dependency vulnerability gate

v2.0.2

Choose a tag to compare

@lvj-repox lvj-repox released this 07 Aug 02:28
adb04f3
Merge pull request #3 from HYGON-AI/agent/third-party-notices-advisory

fix(gate): make third party notices advisory

v2.0.1

Choose a tag to compare

@lvj-repox lvj-repox released this 03 Aug 04:38
9c27d66
Merge pull request #2 from HYGON-AI/fix-pr-gate-v2-false-positives-20…

v2.0.0

Choose a tag to compare

@lvj-repox lvj-repox released this 03 Aug 03:21
fcf47b4
Merge pull request #1 from HYGON-AI/upgrade-universal-pr-gate-20260803

Upgrade universal pr gate 20260803