npm-trusted-publishing
在 GitHub Actions 中实现安全、无 token 的 npm 发布,支持 OIDC、provenance 证明与 Monorepo 配置。
简介
此技能为从 GitHub Actions 管道自动化发布 npm 软件包提供了标准化的方法。通过利用 OpenID Connect (OIDC) 受信任发布机制,它消除了在仓库设置中存储敏感且长效的 NPM_TOKEN 的需求,从而大幅降低了 token 外泄的风险。它专为管理单一软件包或复杂 Monorepo 结构的开发者、维护者与 DevOps 工程师所设计。工作流程确保您的 registry 验证是短期、瞬态且由 GitHub 身份服务进行验证的。
-
启用 GitHub Actions 与 npm registry 之间安全且基于 OIDC 的身份验证。
-
配置强制性的 provenance 证明,为使用者提供有关构建过程与源代码仓库的可验证信息。
-
通过明确处理子软件包的目录映射,支持 Monorepo 设置。
-
提供强大且经过验证的 YAML 工作流程模板,可直接集成至您的 CI/CD 管道中。
-
包含自动化的 npm 版本管理,确保与现代化基于 OIDC 的发布要求相容。
-
促进从传统基于 token 的验证顺利迁移至业界标准的受信任发布机制。
-
确保您的仓库 package.json 包含指向 GitHub 来源的有效 repository.url 字段,以允许 npm 验证发布来源的真实性。
-
工作流程需要在您的 GitHub Actions 设置中启用 id-token: write 权限,以生成向 npm registry 验证所需的必要身份标识 token。
-
在 npm publish 指令中使用 --provenance 标志,为您的软件包提供透明度与安全性元数据。
-
对于 Monorepo 设置,请务必确认 repository.directory 字段符合从仓库根目录到特定软件包的相对路径。
-
若遇到 404 或验证错误,请确保您 runner 环境中的 npm 客户端已更新至最新版本,因为旧版本可能缺少对最新 OIDC 握手协议的支持。
仓库统计
- Star 数
- 106
- Fork 数
- 12
- Open Issue 数
- 4
- 主要语言
- TypeScript
- 默认分支
- main
- 同步状态
- 空闲
- 最近同步时间
- 2026年4月30日 11:10