工程开发
npm-trusted-publishing avatar

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
在 GitHub 查看