Skip to content

ci: release via a GitHub App token so main can release - #116

Merged
puckey merged 1 commit into
mainfrom
ci/release-app
Aug 12, 2026
Merged

ci: release via a GitHub App token so main can release#116
puckey merged 1 commit into
mainfrom
ci/release-app

Conversation

@puckey

@puckey puckey commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

main requires status checks, which reject any direct push whose commit has not been checked — including the release commit @semantic-release/git makes during prepare. GITHUB_TOKEN is github-actions[bot], which is not exempt, so every push to main failed with GH006 before anything was published.

Mint an installation token from a release App instead, and list that App as a bypass actor on the main ruleset. github-actions[bot] cannot be a bypass actor itself: ruleset actors of type Integration must be GitHub Apps installed on the owning org, and the first-party Actions app is not installable.

Also drops the job's now-unused GITHUB_TOKEN write permissions. id-token stays — with no NPM_TOKEN in the repo, OIDC is how npm publish authenticates, not just how provenance is signed.

Already proven on next: run succeeded and published 0.2.0-next.8. This cherry-picks the same commit to main so main can release again.

main's required status checks reject any direct push whose commit has not
been checked, including the release commit @semantic-release/git makes
during prepare. GITHUB_TOKEN is github-actions[bot], which enforce_admins:
false does not exempt, so every push to main failed with GH006 before
anything was published.

Mint an installation token from a release App instead, and list that App as
a bypass actor on the main ruleset. github-actions[bot] cannot be a bypass
actor itself: ruleset actors of type Integration must be GitHub Apps
installed on the owning org, and the first-party Actions app is not
installable. An admin PAT would also work, but it is a long-lived
credential tied to a person that turns write access into an admin-bypass
push; App tokens are installation-scoped and expire in about an hour.

Drop the job's now-unused GITHUB_TOKEN write permissions. Only id-token
remains, for npm provenance.

Refs #113
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying audiobrowser with  Cloudflare Pages  Cloudflare Pages

Latest commit: 9fb9c57
Status: ✅  Deploy successful!
Preview URL: https://5c73b0d5.audiobrowser.pages.dev
Branch Preview URL: https://ci-release-app.audiobrowser.pages.dev

View logs

@puckey
puckey merged commit fc29407 into main Aug 12, 2026
4 checks passed
@puckey
puckey deleted the ci/release-app branch August 12, 2026 12:33
@radio-garden-release

Copy link
Copy Markdown

🎉 This PR is included in version 0.2.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant