github actions 不支持 html 代码质量评级,htmlhint 仅报错不评分,codeql 也不解析 html;可通过 sarif 注解在 pr 中显式标记问题,并用规则分级实现“间接健康度”控制。

GitHub Actions 本身不提供 HTML 代码质量“评级”功能,htmlhint 等工具只做规则校验并输出问题列表;所谓“评级”是 GitHub Code Quality(基于 CodeQL)在特定语言(如 JavaScript、Python、Java)上计算出的可维护性/可靠性分数,但目前不支持 HTML。直接期待 HTML 代码被自动打分并显示在 Security → Code Quality 仪表板里,会落空。
htmlhint 在 GitHub Actions 中只能报错,不能生成评级
htmlhint 是一个静态检查器,它按规则逐行扫描 HTML 文件,发现不合规就报 warning 或 error,但不会统计“多少比例符合规范”或加权算分。它的输出本质是问题清单,不是评分模型。
- GitHub Actions 工作流里跑
npx htmlhint "**/*.html",失败时整个 job 会标红,仅此而已 - 即使你加了
--format=checkstyle或--format=sarif,也只是把结果结构化,供 GitHub 显示为 annotation,仍无“85 分”“B+ 级”这类指标 - GitHub Code Quality 的“Maintainability rating”和“Reliability rating”依赖 CodeQL 分析引擎,而 CodeQL 不解析 HTML 文件语义(它不把
<div> 当成可执行逻辑单元),所以 HTML 文件根本不会出现在 Standard Findings 列表中 <h3>想让 HTML 问题在 PR 中显眼,必须用 SARIF + security-and-quality 注解</h3> <p>虽然不能评级,但能让 HTML 问题像安全漏洞一样内联显示在 PR 的文件改动旁,这才是实际提报的关键。</p><div class="aritcle_card flexRow artxards"> <div class="artcardd flexRow"> <a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill5224" title="GitHub Actions SHA Rerun Debt Audit"><img src="https://img.php.cn/upload/skill/000/000/081/179040613345250.jpg" alt="GitHub Actions SHA Rerun Debt Audit" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a> <div class="aritcle_card_info flexColumn"> <a rel="nofollow" href="/xiazai/skill5224" title="GitHub Actions SHA Rerun Debt Audit" class="overflowclass">GitHub Actions SHA Rerun Debt Audit</a> <p class="overflowclass">按提交SHA审查重跑成本,识别跨工作流反复消耗CI分钟数的提交。</p> </div> <a rel="nofollow" href="/xiazai/skill5224" title="GitHub Actions SHA Rerun Debt Audit" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a> </div> </div> <ul> <li>必须启用 <code>security-events: write权限,否则upload-sarif步骤会静默失败 - 运行
npx htmlhint . --format=sarif > htmlhint-results.sarif,注意路径要覆盖所有 HTML,且.表示从仓库根开始扫描(不是./src这类子目录,除非你明确指定) - 必须用官方
github/codeql-action/upload-sarif@v2上传,不能自己 curl;且 SARIF 文件需包含runs[0].tool.driver.name字段,htmlhint默认输出可能缺这个,建议加--reporter-options "toolName=htmlhint" - 上传后问题会出现在 PR 的 “Files changed” 标签页底部的 “Security” 检查项里,点击可跳转到具体行
HTML 质量“间接评级”只能靠规则开关 + 人工定义阈值
没有自动打分,但你可以用规则组合模拟“健康度”:比如把 id-unique、alt-require、title-require 设为 error 级别,其他设为 warning;再配合 CI 失败策略,实现“关键规则零容忍”。
- 在
.htmlhintrc中用"rules": { "id-unique": true, "attr-lowercase": [true, "lowercase"] }明确控制每条规则开关和参数 - CI 中用
run: npx htmlhint . --quiet || exit 0把 warning 当作非阻断项,只让 error 阻断合并 - 若想统计 warning 数量做趋势监控,得额外写脚本解析
htmlhint的 JSON 输出(--format=json),再存到 artifact 或发到外部看板——这已超出 GitHub Actions 原生能力范围
真正容易被忽略的是:GitHub Code Quality 对 HTML 的“不可见”,不是配置问题,而是设计限制。别花时间调 codeql database create 去强行解析 HTML,它不会生效。把 htmlhint 当作门禁摄像头——它能拍下谁没关门(tag-pair: true),但不会给住户打信用分。










