ci: sign the release PR commit with the bot GPG key#267
Merged
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
4aaa5b2 to
7adbc2a
Compare
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
The branch ruleset requires verified signatures on every PR commit, but release-please creates its release PR commits through the REST API, which cannot produce GPG signatures — so release PRs (first hit: #245) are unmergeable. There is nothing to configure on the bot account for this: only git-CLI commits can be signed, and release-please has no signing support upstream.
logto-io/js does not have this problem because changesets/action commits via the git CLI with silverhand-bot's GPG key imported (
crazy-max/ghaction-import-gpg+BOT_GPG_KEY/BOT_GPG_PASSPHRASEorg secrets, both already visible to this repo).This PR ports that setup: after release-please runs, when a release PR was created or updated (
prs_created), the workflow checks out the release branch, imports the bot key, andgit commit --amend --no-edit --gpg-sign+ force-pushes — the commit keeps its author and message and becomes Verified. A guard skips amending when the head commit is already signed (e.g. re-signed by hand, like #245 just was), so checks are not re-triggered for nothing. Pushes useBOT_PATso the PR's required status checks still trigger on the new SHA.Also documents the step in RELEASE.md.
Note: the
v2.xrelease workflow needs the same treatment beforerelease: 2.0.3(#260) can merge — mirror PR to follow.Testing
BOT_GPG_KEY/BOT_GPG_PASSPHRASEare org secrets visible to this repo.Checklist
.changeset(N/A — release-please)🤖 Generated with Claude Code