0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

NPMパッケージの発行をシークレットキーからTrusted Publisherへ移行したら、微妙にハマった話。GitHub Actionsの場合

Posted at

背景

GitHub ActionsからNPMパッケージを発行していました。

Trusted Publisher というものが登場(いつからだろう?)し、かつてより簡単かつセキュアに実現できるようになりました。

かつてのやりかた

NPMJS でシークレットキーを作成します。
それをGitHubレポジトリの設定に格納します。
GitHub Actionsから、設定したシークレットキーを参照します。

Trusted Publisher 以降のやり方

NPMJSに信頼するGitHubレポジトリをセットします。
以上。

ちょーかんたん。

実際のやりかた

こちらにあるドキュメントに従います。

手順詳細

Step 1.

NPMJSのパッケージ画面にある Settings を開きます。

image.png

Step 2.

Trusted Publisher欄にある GitHub Actions をクリックします。

image.png

Step 3.

必要な項目を入力します。

image.png

Organization or user
GitHubレポジトリのオーナーとなるユーザー名か組織名です。
Repository
レポジトリの名前です。
Workflow filename
`.gighub/workflows` 以下に置いてあるYAMLのファイル名です。
Environment name
GitHub environments を使っている場合、入力するみたいですk。

入力したら、Set up connectionをクリックします。

Step 4.

場合によってはMFA通ります。

image.png

Step 5.

こんなんできました。

image.png

Step 6.

GitHub action yamlファイルを変更します。

id-tokencontents を加え、参照していたシークレットキーを消しました。

diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml
index f0c192e..826adaa 100644
--- a/.github/workflows/npm-publish.yml
+++ b/.github/workflows/npm-publish.yml
@@ -11,15 +11,19 @@ on:
       - "v*"
   workflow_dispatch:
 
+permissions:
+  id-token: write  # Required for OIDC
+  contents: read
+
@@ -30,13 +34,11 @@ jobs:
       - run: npm ci
       - run: npm publish
-        env:
-          NODE_AUTH_TOKEN: ${{secrets.npm_token}}

これでうまくいくはずでした……

アクションを実行すると、NPMJS の認証通っていないのか、404 Not Found

image.png

ちなみに Node のバージョンは 22 です。

どうも不具合っぽい

こんなイシューがあがっていました。

【解決策】Node のバージョンは 24 にしよう

Trusted Publisherを使う前提として、以下が必要なようです。

  • npm CLI 11.5.1 以降
  • Node.js 24以降

Yamlファイルを修正し、使用するNodeのバージョンを22→24にすることで、アクション動きました。

ちなみに、Node 22 のまま、npm CLI を最新(11.7)に上げてもダメでした。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?