Skip to content

ci: grant release job contents: write for asset upload (SEC-842) - #596

Draft
Matt Sutkus (msuitcase) wants to merge 3 commits into
masterfrom
sec-842/release-job-permissions
Draft

Matt Sutkus (msuitcase) wants to merge 3 commits into
masterfrom
sec-842/release-job-permissions

Conversation

@msuitcase

Copy link
Copy Markdown

Description

Why

#586 added a workflow-level permissions: contents: read to release.yml. The Upload assets to release step (AButler/upload-release-assets) calls repos.uploadReleaseAsset, which needs contents: write. No release has run since #586: the last one (v9.0.0-rc.1, 2026-09-08) predates it and got Contents: write from the repo default. The next release would publish to npm, then fail the upload with a 403 and leave the release without easypost.js / easypost.mjs.

Change

  • Remove the workflow-level permissions block.
  • Set permissions on the release job instead: id-token: write (npm trusted publishing) and contents: write (asset upload).

Related: #592 (ci.yml least-privilege permissions).

Part of SEC-842.

Testing

release.yml only runs on a published release or workflow_dispatch, so this PR's CI does not exercise it. Verify on the next release that Upload assets to release succeeds and the release shows both assets.

Pull Request Type

  • Bug fix (non-breaking change which fixes an issue)

… entries

Fixes GHSA-qxg6-89mg-rqv8 and GHSA-xp26-3454-mjgp in @vitest/mocker. Lockfile only; package.json ranges are unchanged. Removes GHSA-4mjr-xmp4-gh2g and GHSA-x5fp-wj9c-mxmx from audit-ci.jsonc, which audit-ci reports as no longer matching anything.

This branch has not been deployed

No deployments
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