fix: Node 24 + OIDC Trusted Publishing#4
Conversation
- Upgrade Node.js from 22 to 24 across all workflows (CI + release) - Node 24 ships npm 11.x+ with OIDC Trusted Publishing support - Remove NODE_AUTH_TOKEN secret reference — OIDC handles auth automatically Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Updates GitHub Actions workflows to use Node.js 24 and switches npm publishing authentication from a secret-based token to OIDC Trusted Publishing, aligning releases with npm’s recommended GitHub Actions auth flow.
Changes:
- Bump Node.js version from 22 to 24 in CI and release workflows.
- Remove
NODE_AUTH_TOKEN/NPM_TOKENusage from the npm publish step to rely on OIDC (id-token: write).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| .github/workflows/release.yml | Node 24 upgrade; removes token-based publish env in favor of OIDC permissions. |
| .github/workflows/ci.yml | Node 24 upgrade for CI execution. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - name: Publish | ||
| if: steps.npm_check.outputs.skip != 'true' | ||
| run: pnpm publish --access public --no-git-checks --provenance |
There was a problem hiding this comment.
PR description states we’re relying on npm 11’s native OIDC Trusted Publishing support, but the workflow still publishes via pnpm publish. If pnpm’s publisher path doesn’t implement npm’s OIDC token exchange, this may still fail with ENEEDAUTH even on Node 24. Consider switching this step to npm publish --provenance ... (keeping pnpm for install/build), or document/verify that pnpm publish supports npm Trusted Publishing OIDC in GitHub Actions.
Summary
NODE_AUTH_TOKEN/NPM_TOKENsecret — OIDC handles npm auth automatically viaid-token: writepermissionContext
Release workflows were failing with
ENEEDAUTHbecauseNPM_TOKENsecret was not set. With Trusted Publishers configured on npm, OIDC authentication is the correct approach.Test plan
🤖 Generated with Claude Code