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