SuperAPI AI 工具集

node-release

部署与运维

查看项目

更新于 10-16 07:50

技能介绍

用途

node-release 用于自动化 npm 包的版本管理与发布流程,目标是在不依赖长期密钥、不猜测事实的前提下完成版本号、变更日志、标签与 npm 发布。它针对的典型失败包括:在 2026 年仍使用 NPM_TOKEN 密钥、忽略新包首次版本无法通过 OIDC 发布、可信发布者注册信息填写不精确(大小写、文件名、间接调用),以及打标签后发布失败导致发布流程半途而废。

主要能力

  • 按工作流实际情况选择发布工具(决策表见 references/release-playbook.md):Changesets(人工撰写发布说明、monorepo)、semantic-release(严格遵循约定式提交、完全自主)、release-please(每次发布经 PR 审核)。
  • 可信发布(OIDC)作为默认认证方式;所有要求均在 playbook 中按版本设门槛,并附官方 npm 文档链接(运行器上的 CLI/Node 最低版本、GitHub 托管运行器、仓库与工作流文件名的精确匹配注册、workflow_call 间接调用注意事项)。在可信发布下 provenance 会自动附加。
  • 引导(bootstrap)注意事项:全新包无法通过 OIDC 完成首次发布;playbook 的引导流程涵盖一次手动发布、随后注册、再撤销令牌并在账户级别强制仅使用可信发布。
  • 依据 playbook 的 YAML 编写发布工作流:最小权限(id-token: write,contents: read/write 按需)、第三方 action 固定 SHA(与 node-supply-chain 策略一致)、发布以 node-packaging 检查为门禁。
  • 失败顺序纪律:先发布再打标签(或使重试幂等);绝不删除已发布的标签——发布不可变。
  • 端到端验证:先 dry-run,再尽可能对预发布/dist-tag 做一次真实发布;在注册表页面确认 provenance;之后才撤销旧令牌。

使用方式

该技能以技能包形式提供,核心参考文件为 references/release-playbook.md,其中包含工具决策表、带版本门槛与文档链接的 OIDC 设置、引导流程、发布工作流 YAML、失败顺序模式以及 dist-tag/预发布指引。使用时按 playbook 选择发布工具、配置可信发布、编写发布工作流并执行端到端验证。

适用场景

适用于需要自动化 npm 发布、希望消除长期注册表密钥、需要 provenance 证明、以及需要处理新包首次发布引导与回滚流程的 Node.js 项目。

限制

不适用于导出映射、打包与 tarball 内容(应使用 node-packaging,发布假定其门禁已通过);不适用于验证依赖的 provenance(node-supply-chain);不适用于测试/检查 CI(node-ci)。可信发布者注册为精确匹配:owner/repo 大小写与工作流文件名(含扩展名);从可复用(workflow_call)工作流发布时按调用文件校验。OIDC 并不能让被入侵的工作流变安全——它消除的是存储密钥被盗风险,工作流文件审查仍然重要(.github/ 上的 CODEOWNERS)。先打标签后失败会让使用者看到一个 npm 上并不存在的版本——需明确选择顺序或幂等其一。所有 npm 侧细节(最低版本、分阶段发布、令牌有效期)会变化:playbook 对每项均以一手来源设版本门槛,设置时需重新核实。