Skip to content

Harden the Changesets release workflow - #582

Open
andrewiggins wants to merge 4 commits into
mainfrom
security/split-release-privileges
Open

Harden the Changesets release workflow#582
andrewiggins wants to merge 4 commits into
mainfrom
security/split-release-privileges

Conversation

@andrewiggins

@andrewiggins andrewiggins commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Summary

  • migrate release automation to Changesets CLI v3 and the split Changesets v2 actions
  • separate versioning, build/pack, and publishing into least-privilege jobs as recommended by this latest version of Changesets: https://changesets.dev/guide/automating#trusted-publishing
  • publish the exact artifacts produced by a read-only build job
  • share locked dependency setup and full validation through local composite actions
  • update all GitHub Actions to their latest stable releases with full SHA pins

Security controls

  • reset workflow permissions and grant capabilities per job
  • keep package builds outside jobs with repository-write or npm OIDC permissions
  • disable persisted checkout credentials
  • install from the frozen lockfile with dependency lifecycle scripts disabled
  • disable package lifecycle scripts during publication
  • pin runners and every external Action

Validation

  • clean install with a new pnpm store and --frozen-lockfile --ignore-scripts
  • formatting, build, lint, type-check, and tests
  • Changesets status and publish-plan generation
  • synthetic Changesets pack flow with expected package contents
  • production dependency audit with zero findings

@andrewiggins
andrewiggins requested a review from a team August 28, 2026 00:35
@andrewiggins andrewiggins added the 🤖Skip Changelog Don't require a changelog for this PR label Aug 28, 2026
@andrewiggins
andrewiggins force-pushed the security/split-release-privileges branch from 0a77f5c to 02f65df Compare August 28, 2026 00:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🤖Skip Changelog Don't require a changelog for this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant