feat: サプライチェーン攻撃対策(github actions, pnpm) - #9
Conversation
| steps: | ||
| - name: Checkout codes | ||
| uses: actions/checkout@v3 | ||
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 |
There was a problem hiding this comment.
|
|
||
| - name: Setup node | ||
| uses: actions/setup-node@v3 | ||
| uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 |
There was a problem hiding this comment.
- action setup-node
|
|
||
| - name: Publish docs | ||
| uses: stefanzweifel/git-auto-commit-action@v4 | ||
| uses: stefanzweifel/git-auto-commit-action@04702edda442b2e678b25b537cec683a1493fcb9 # v7.1.0 |
There was a problem hiding this comment.
このレポジトリのsecrets.NPM_TOKENがおそらくexpired(有効期限2026 02)になっており、CIが失敗する。 slackスレ、granular access tokensを使っているっぽい |
npm tokenだと管理が大変なので、GITHUB_TOKENを使うようにしてみる。 |
|
パッケージが plaidev/karte-io-systems リポジトリに属しているのでGITHUB_TOKENを使っても404になる |
|
secrets.NPM_TOKENを使う方式に戻した |
|
trusted publishingのドキュメント trusted publishingはpublishのときに使う。アラートメッセージが出ているけど今回のinstallだけの用途ではgranular access tokensを使う。 |
|
「karte-action-sdk-from-github-action」を追加 secrets.NPM_TOKENを更新したが403が出た。 |
|
|
||
| - name: Setup npmrc | ||
| run: | | ||
| echo "//npm.pkg.github.com/:_authToken=${{ secrets.NPM_TOKEN }}" > .npmrc |
There was a problem hiding this comment.
@kazupon karte-action-sdk-docsレポジトリのサプライチェーン攻撃対策を行っているのですが、質問させてください。
github actions上でgithub packageの「karte-action-sdk」をinstallするときに使うsecrets.NPM_TOKENが何のトークンなのかご存知だったりしますか?
試したこと
- 最初npm.jsの管理画面上にある「karte-action-sdk-from-ci」というトークンかと思って有効期限が切れていたので新規にトークン作成したところ403が出てinstallできませんでした。
- github orgのPersonal access tokenも確認しましたが「NPM_TOKEN」はありませんでした
There was a problem hiding this comment.
「karte-action-sdk」をinstallするときに使うsecrets.NPM_TOKENが何のトークンなのかご存知だったりしますか?
npm registryに登録されている当時 private だった? karte-action-sdkをインストールするためのnpm で発行した token だと思います。
この repository 、io-systems側で action-sdk を npm publish した後、github action の外部 repository dispatch 経由で、この repositoryの github action がキックされて動作します。
この github action が動作すると、npm publish された action-sdk をインストールしてドキュメントを生成して github pagesで公開してたはずです。
There was a problem hiding this comment.
下記URLのエレメントビルダーに今はないので、このrepo自体必要なかったら削除してしまってもいいと思います。
https://support.karte.io/post/67aMq2qoqXQMw6WaDL22Vl
There was a problem hiding this comment.
memo
- karte-io-systemsのgithub action「publish-flyer-core-gh-sdk.yml」
- https://github.com/plaidev/karte-io-systems/blob/481fdf6cb164cc138d8bf44d48f5f9aff7bd66df/.github/workflows/publish-flyer-core-gh-sdk.yml#L91
- タグ「beta」をつけてpublishする
- 「'systems/action-editor/core/action-sdk/package.json’」の変更PRがcloseされると実行される。
- 以前はaction-sdkを変更したら開発ローカル環境でversionをインクリメントしてpublishし、その後PR作成しマージのタイミングで上記のgithub actionが実行されていた
- 現在はaction-sdkをnpmにpublishする必要がなくなったので直近半年くらいはaction-sdk/package.jsonの変更はない
- https://github.com/plaidev/karte-io-systems/blob/481fdf6cb164cc138d8bf44d48f5f9aff7bd66df/.github/workflows/publish-flyer-core-gh-sdk.yml#L91
- karte-action-sdkのbetaをinstallしてそれを元にドキュメントを生成する
karte-action-sdk-docs/package.json
Line 20 in ee1cd5d
There was a problem hiding this comment.
確かにエレメントビルダー停止を考えるとレポジトリ自体不要にすることもできそう。
フレックスエディタの共通コード設定で使えるkarte-action-sdkの仕様の参照先として何かしらのドキュメントがほしいというケースはありそう。このへんはcurtisさんにも聞いてみる。
There was a problem hiding this comment.
|
アーカイブすることになったのでこのPRはクローズします。 |


Summary
actions/checkoutを v3 → v6.0.2 にアップデートし、commit SHA でピン留めactions/setup-nodeを v3 → v6.3.0 にアップデートし、Node.js を 18.x → 25.9.0 に変更、commit SHA でピン留めstefanzweifel/git-auto-commit-actionを v4 → v7.1.0 にアップデートし、commit SHA でピン留めTest plan
🤖 Generated with Claude Code
参考