优化:CI 健康度可视化看板(ECharts HTML) #706
Reference in New Issue
Block a user
Delete Branch "feat/ci-health-dashboard-html"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
功能说明
为
ci_dashboard.py新增--html输出模式,生成自包含的静态 HTML 可视化看板页面(内嵌 ECharts CDN)。变更内容
1. scripts/ci/ci_dashboard.py
--html/--html-output命令行参数generate_html()函数,生成单文件 HTML 看板2. scripts/ci/generate_ci_dashboard.sh(新增)
--days和--output参数3. .gitea/workflows/ci-health-daily.yml
使用方式
操作限制
scripts/ci/目录和 workflow 配置🚀 预览环境已部署
CI全绿,自动审批通过。
CI全绿,自动审批通过。
代码审查结果 - PR #706
⚠️ 问题(1个需要修改)
json.dumps``</script>序列化数据后,直接使用 f-string 嵌入到 HTML 的<script>标签中(const DATA = {data_json};)。如果 Gitea 中的数据(如 Job 名称、Workflow 名称)包含</script>字符串,浏览器会提前闭合脚本标签,导致跨站脚本攻击(XSS)。</script>替换为<\/script>,或者使用 HTML 实体编码。例如:safe_json = data_json.replace('</script>', r'<\/script>')。💡 建议(2个可选)
scripts/ci/ci_dashboard.py:外部 CDN 依赖可能导致内网环境看板不可用。
cdn.jsdelivr.net加载 ECharts。如果该看板部署在无法访问公网的内部服务器或 CI 环境中,图表将无法渲染。.gitea/workflows/ci-health-daily.yml:看板生成失败被静默忽略。
set +e和exit 0,且注释说明“永远成功,看板生成失败不影响主流程”。虽然这是为了防止非关键任务阻断 CI,但如果生成逻辑出错,可能很长一段时间内无人发现看板已失效。else分支(生成失败时)增加一个告警通知(如调用企业微信/钉钉 Webhook),以便运维人员知晓看板生成异常。✅ 格式检查通过 | ❌ 逻辑审查需修改 | ⚠️ 建议关注性能
🤖 由 AI 代码审查机器人自动生成 | 2026-07-22 13:56:11 | 模型:
🗑️ 预览环境已清理
PR #706 已关闭或合并,对应的预览环境已被清理。