Skip to content

[FSSDK-12891] Switch npm publishing to OIDC trusted publishing#345

Open
FarhanAnjum-opti wants to merge 1 commit into
masterfrom
farhan/FSSDK-12891-trusted-publishing
Open

[FSSDK-12891] Switch npm publishing to OIDC trusted publishing#345
FarhanAnjum-opti wants to merge 1 commit into
masterfrom
farhan/FSSDK-12891-trusted-publishing

Conversation

@FarhanAnjum-opti

@FarhanAnjum-opti FarhanAnjum-opti commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Replace long-lived PUBLISH_REACT_TO_NPM_FROM_GITHUB token with OIDC trusted publishing for tokenless, more secure CI publishing to npm
  • Upgrade Node to 22, add npm upgrade step (OIDC requires npm 11.5.1+)
  • Remove registry-url from setup-node to prevent .npmrc token entry that conflicts with OIDC
  • Add --provenance flag for supply-chain attestations
  • Add GitHub npm environment gate for deployment protection
  • Add workflow_dispatch trigger for dry-run testing

Prerequisites

  • Configure trusted publisher on npmjs.com for @optimizely/react-sdk (owner: optimizely, repo: react-sdk, workflow: react_release.yml, environment: npm)
  • Create GitHub environment npm with required reviewers and branch restrictions

Test plan

  • Configure trusted publisher on npmjs.com
  • Create npm GitHub environment
  • Trigger workflow_dispatch on this branch to verify OIDC handshake (dry run)
  • After merge, do a real release to confirm end-to-end publish with provenance
  • After verifying, delete PUBLISH_REACT_TO_NPM_FROM_GITHUB secret

References

🤖 Generated with Claude Code

Replace long-lived PUBLISH_REACT_TO_NPM_FROM_GITHUB token with OIDC
trusted publishing for more secure, tokenless CI publishing to npm.

Workflow changes:
- Add id-token: write permission for OIDC token generation
- Move permissions to workflow level (add packages: write for GHR)
- Add GitHub environment gate (npm) for deployment protection
- Upgrade Node to 22, add npm upgrade step (OIDC requires npm 11.5.1+)
- Remove registry-url from setup-node (prevents .npmrc token entry
  that would conflict with OIDC)
- Remove PUBLISH_REACT_TO_NPM_FROM_GITHUB from npm publish step
- Add workflow_dispatch trigger for dry-run testing
- Add DRY_RUN env to both publish steps

publish.sh changes:
- Make NODE_AUTH_TOKEN optional in curl registry lookup (public
  packages don't need auth for reads)
- Add --provenance flag for npm registry publishes

GHR publish step unchanged — still uses GITHUB_TOKEN.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant