ci: re-sign the release branch on every push#268
Merged
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This was referenced Jun 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
#267 hooked the signing steps into the release-please job, gated on
prs_created— i.e. they only ran when release-please itself created or updated the release PR in that same run. Real life immediately found the two gaps:062b0fdon release: 3.0.0-beta #245 today).This PR moves the signing out of the release-please job into a
sign-release-branchjob triggered by pushes torelease-please--branches--**— it reacts to the branch state, not to who changed it. Whether the unsigned head comes from release-please's REST-API force-push, a manual rebase update, or anything else: push event → if head commit is unsigned (%G?= N), amend with the bot's GPG key and force-push. Already-signed heads are left alone, which also guarantees the job cannot retrigger itself.Also: the
release-pleasejob is now explicitly gated to master pushes, the push uses an explicit refspec (HEAD:ref_name, the previous baregit push --forcehad no upstream on a detached checkout), and RELEASE.md is updated.Note: a workflow only fires for branches whose tree contains it, so the first rebase-update of #245 after this merges will pull the new release.yml into the release branch and the job will sign the rebased commit — that rebase is the live acceptance test.
The v2.x release workflow still needs the same treatment (mirror PR planned together with the rest of the signing setup, before
release: 2.0.3#260).Testing
sign-release-branch, and the head flips to Verified within ~1 minute.verified: true).Checklist
.changeset(N/A — release-please)🤖 Generated with Claude Code