用途:帮助用户搭建并自动化 npm 包的发布流程,通过 GitHub Actions 完成认证、版本管理、安装、工作流触发、来源证明、验证和故障恢复。适用于“发布此包到 npm”“设置 npm 发布”“自动化 npm 发布”“从 GitHub Actions 发布”“可信发布/OIDC”“semantic-release/changesets/release-please”“首次发布引导”“排查 CI 中发布失败”等请求。
主要能力:按固定顺序做决策——先分类仓库(公开/私有、是否 GitHub 托管 runner、单包/单仓库、是否使用约定式提交、自动或人工审核发布、全新或已发布、目标是否 npmjs.org),再选认证方式(OIDC 可信发布或 token),再选版本管理(semantic-release、changesets、release-please 或手动),最后路由到对应工作流模板并检查前置条件与锁文件。区分本地发布与 CI 发布,提供 OIDC 与 token 两条认证通道,覆盖 provenance 配置、包/仓库前置条件、发版前验证脚本和迁移引导。
使用方式:默认优先 OIDC 可信发布(无 npm secret,需 id-token: write、npm CLI 11.5.1+、Node 22.14.0+);品牌新包首次发布必须用 granular token 引导,之后在 npm 上关联仓库再切 OIDC。自托管 runner/GHES/私有包用 token(NODE_AUTH_TOKEN)。单仓库默认 changesets,有约定式提交可用 release-please,单包强约定式提交可 semantic-release。CI 用 actions/setup-node 配 registry-url、publish 步骤配置 NODE_AUTH_TOKEN 或纯 OIDC;本地可用 npm publish --access public --//registry.npmjs.org/:_authToken="${NPM_TOKEN}" 或临时 .npmrc,也可 npm login。
限制与注意:OIDC 要求包已在 npm 存在、仓库公开且 GitHub 托管 runner,自托管 runner 不支持 OIDC;不要在 CI 运行 npm login、不要提交含真实 token 的 .npmrc、不要对 scoped 包漏设 publishConfig.access: "public"(否则 E403)、纯可信发布不加 --provenance;不要用 pull_request_target 泄露发布密钥。若仓库处于迁移中,需一次完成认证+版本管理+工作流+引导,避免半配置状态。命令与代码保持原样,未提供的细节暂未在资料中说明。