用途:把包含 Markdown 与 PNG 截图的测试报告发布为一对私密 GitHub Gist,报告 Gist 作为主链接返回给用户。
主要能力与设计原因:gh gist create 不接受二进制文件,Data URI 在 Gist Markdown 中无法渲染,而单个 Gist 含大量 PNG 时 Markdown 会完全停止渲染(空白页)。因此采用双 Gist 方案:资源 Gist 通过 git 推送 PNG,报告 Gist 用原始 URL 引用图片。
使用方式:
- 若报告含截图,先创建资源 Gist:echo "Assets for report" > /tmp/gist-assets-readme.md,再用 gh gist create 创建并取回 URL 与 ID。
- 通过 git 推送 PNG:git clone 资源 Gist,复制截图,git add/commit,将 remote 设为带 gh auth token 的地址后 git push origin HEAD。
- 重写报告 Markdown 中的本地图片路径为 https://gist.githubusercontent.com/<username>/<assets_gist_id>/raw/foo.png 形式;/raw/<filename> 始终解析到 HEAD,用户名可用 gh api user -q .login 获取。
- 创建报告 Gist:gh gist create report.md --desc "<report-title>"。
- 验证:curl -sI 任一原始图片 URL,需返回 HTTP 200。
- 收尾:返回两个 URL,并把报告 Gist URL 追加到本地报告文件末尾以便追溯。
适用场景:需要分享含截图的 E2E/QA 测试报告,且内容可能包含内部 URL、用户名或截图中的令牌。
限制:仅使用私密 Gist;有截图时必须采用双 Gist 拆分,零图片时可用单个 Gist;报告成功前必须验证至少一个原始 URL 返回 HTTP 200。