SuperAPI AI 工具集

uw-publish

部署与运维

查看项目

更新于 10-30 09:34

技能介绍

用途 uw-publish 用于把当前已扫描项目的交互式 Unwind 仪表盘发布到该项目的 GitHub Pages gh-pages 分支,方便他人直接通过 https://<owner>.github.io/<repo>/unwind/ 查看,无需本地启动服务器。适合在扫描(最好也完成分析)后分享仪表盘,或在代码、文档变更后重新运行以刷新发布视图。

主要能力

  • 将仪表盘构建到指定子目录并提交到本地 gh-pages 分支。
  • 以子目录方式发布,仅替换 gh-pages 中 unwind/ 子目录及根目录的 .nojekyll,保留分支上其他文件(如项目文档、Storybook、覆盖率等);分支不存在时创建孤立分支。
  • 提供 dry run 规划,展示远程、owner/repo、分支操作、子目录和最终 Pages URL。
  • 支持自定义子目录、分支、远程、Vite base 路径,以及一步完成构建、提交和推送的 --push 选项。
  • 具备优雅降级:git、pnpm 或 @unwind/core 不可用时,或项目没有 GitHub 远程、尚无扫描时,报告缺失项并干净退出。

使用方式

  1. 预检查:定位已安装的 Unwind 插件并加载核心辅助脚本,验证 @unwind/core 可用。
  2. 规划:运行 node "$UNWIND_PLUGIN_ROOT/skills/scripts/deploy-gh-pages.mjs" "$(pwd)" --plan,查看并转述计划;若报告缺少 git 远程或扫描,停止并提示用户处理。
  3. 构建并提交:运行 node "$UNWIND_PLUGIN_ROOT/skills/scripts/deploy-gh-pages.mjs" "$(pwd)",在本地 gh-pages 分支生成新提交(尚未推送),随后向用户确认是否发布到报告的 Pages URL。用户拒绝时不会推送,可用 git branch -D gh-pages 删除本地分支。
  4. 推送:确认后运行 git push origin gh-pages;也可用 --push 重新构建、提交并推送。
  5. 报告:告知用户访问地址,以及一次性设置——在仓库 Settings → Pages → Source 选择 gh-pages 分支;若 GitHub CLI 已认证,可执行 gh api -X POST repos/<owner>/<repo>/pages -f 'source[branch]=gh-pages' -f 'source[path]=/'。

可用参数 --subdir <name>:指定发布子目录,默认 unwind。 --branch <name>:指定 Pages 分支,默认 gh-pages。 --remote <name>:指定读取和推送的 git 远程,默认 origin。 --base <path>:覆盖 Vite base 路径,用于自定义域名或 CNAME。 --push:一步完成重建、提交和推送。

适用场景与限制 适用于已有 GitHub 远程且完成扫描的项目,希望通过 GitHub Pages 分享 Unwind 仪表盘。静态部署可展示 Graph、Coverage、Priorities、Contracts 和 Docs 视图;实时源代码查看器仅在开发服务器中可用,静态部署会显示 Source unavailable。安全方面,所有 git 操作在隔离 worktree 中进行,不触碰当前工作区和分支;推送前必须由用户确认目标。重新运行是幂等的,只会写入子目录和根 .nojekyll。该技能只读取项目中的 docs/unwind/,仅写入隔离 worktree,推送时写入远程 gh-pages 分支。