Skip to content

feat: add npm OIDC Trusted Publisher support#52

Merged
azu merged 7 commits intomasterfrom
oidc
Jan 17, 2026
Merged

feat: add npm OIDC Trusted Publisher support#52
azu merged 7 commits intomasterfrom
oidc

Conversation

@azu
Copy link
Owner

@azu azu commented Jan 17, 2026

Summary

This PR adds npm OIDC (OpenID Connect) Trusted Publisher support for secure package publishing. It eliminates the need for long-lived NPM_TOKEN secrets and enables provenance attestation for all published packages.

Changes

  • Add release.yml workflow with OIDC authentication (3-job structure: check, release, comment)
  • Add create-release-pr.yml for automated release PR creation via workflow_dispatch
  • Add check-provenance.yml for monitoring OIDC configuration status across packages
  • Add CODEOWNERS file to protect critical workflow files
  • Update lerna from v7 to v9 (required for OIDC provenance support)
  • Update existing workflows with security improvements:
    • Bump actions to v4 with SHA pinning
    • Add persist-credentials: false to all checkouts
    • Add explicit permissions blocks
    • Update Node.js test matrix to 20/22

Breaking Changes

None

Test Plan

After merging, the following manual steps are required:

  1. Create GitHub Environment "npm" at Settings → Environments
  2. Configure npm Trusted Publisher for each @kvs/* package:
    • Repository: azu/kvs
    • Workflow: .github/workflows/release.yml
    • Environment: npm
  3. Run gh workflow run check-provenance.yml to verify OIDC status
  4. Test release flow by running Create Release PR workflow

- Add release.yml workflow with OIDC authentication (3-job structure)
- Add create-release-pr.yml for automated release PR creation
- Add check-provenance.yml for monitoring provenance status
- Add CODEOWNERS file for workflow protection
- Update lerna to v9 for OIDC provenance support
- Update existing workflows with security improvements (v4 actions, persist-credentials: false)
- Update Node.js test matrix to 20/22

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@github-actions
Copy link
Contributor

github-actions bot commented Jan 17, 2026

NPM Package Status

Published Packages Missing OIDC Configuration

Configure OIDC for these packages:

Setup Instructions:

  1. Click each package link above
  2. Click "Add trusted publisher"
  3. Configure with:
    • Repository: azu/kvs
    • Workflow: .github/workflows/release.yml
    • Environment: npm

@github-actions
Copy link
Contributor

github-actions bot commented Jan 17, 2026

size-limit report 📦

Path Size
packages/env/module/browser.js 1.16 KB (0%)
packages/indexeddb/module/index.js 1.15 KB (0%)
packages/localstorage/module/index.js 860 B (0%)

azu and others added 4 commits January 18, 2026 08:09
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@azu azu added the Type: CI Changes to CI configuration files and scripts label Jan 17, 2026
azu and others added 2 commits January 18, 2026 08:20
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
CodeSandbox CI only supports Node.js 18, but lerna 9 requires Node.js 20+.
Remove CodeSandbox CI to enable OIDC Trusted Publisher support.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@azu azu merged commit 2ea0655 into master Jan 17, 2026
13 checks passed
@azu azu deleted the oidc branch January 17, 2026 23:23
This was referenced Jan 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Type: CI Changes to CI configuration files and scripts

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant