工程開發
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 查看