Trusted Publishingでnpmパッケージを公開
自分のnpmパッケージのセキュリティを少し強化したときのメモ
前置き
詳細については、azuさんの記事を見た方が正確です。
私の記事では、私が実際に行ったことを紹介します。
導入の流れ
もともと--provenance(認証バッジ)を付ける設定をしていました。そこから次の設定を追加しました。
- Trusted Publisherを設定
- 必要な情報を入力
[Set up connection]ボタンで何事もなく完了
- npm-publish.ymlの編集
npm i -g npm@latestを追加env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}を削除
- トークン削除
- リポジトリとnpmjsの両方
私の場合はこれだけで問題なく移行できました。
ただし、2FAの必須化はしていません。めんどくさかった
Tips: npm publishの違い
npm publishのフローが異なるため、簡単にまとめます。ymlファイルを参照する際の参考にしてください。
azuさんのフロー
- ブラウザからRun workflow(リリースPRを作成)
- リリースPRをレビューしてリリースノートを書く
- リリースPRをマージ
- npm publish
公式例のフロー
- tagを付けてpush
- npm publish
私のフロー
- ブラウザからRun workflow
- npm publish
- バージョン更新用のPRが作成されるのでマージ
気になる違い
| azu | 公式 | 私 | |
|---|---|---|---|
| デフォルトブランチ保護 | 可 | ❌ | 可 |
| タグ自動作成 | ✅ | ❌ | ✅ |
| リリースノート自動作成 | ✅ | ❌ | ❌ |