feat: pass release-please-approver secrets through in gen workflows - #1873
Merged
Conversation
QuentinBisson
approved these changes
Jun 1, 2026
fiunchinho
marked this pull request as ready for review
June 1, 2026 14:41
Generated release-please.yaml now forwards two new optional secrets, RELEASE_PLEASE_APPROVER_CLIENT_ID and RELEASE_PLEASE_APPROVER_PRIVATE_KEY, to giantswarm/github-workflows/.github/workflows/release.yaml. These back the dedicated release-please-approver App that satisfies branch protection's required-approval rule on release-please PRs — without the auto-approve step, --auto --squash never completes the merge because the App-authored PR has no approving reviewer. Both secrets are required: false in the reusable workflow, so repos that don't have the App installed or the secrets configured see no behavior change. The auto-approve step is gated on the secrets being non-empty. The release-please-approver App needs Pull requests: Read and write AND Contents: Read and write — Contents: Read alone is silently disregarded by branch protection (empirically verified during testing on giantswarm/test-release-please).
fiunchinho
force-pushed
the
release-please-approver-secret-passthrough
branch
from
June 1, 2026 14:44
7e851d6 to
da1300c
Compare
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
Generated `release-please.yaml` now forwards two new optional secrets — `RELEASE_PLEASE_APPROVER_CLIENT_ID` and `RELEASE_PLEASE_APPROVER_PRIVATE_KEY` — to the reusable `giantswarm/github-workflows` `release.yaml`. These back a dedicated `release-please-approver` GitHub App that submits an approving review on release-please PRs, satisfying branch protection's required-approval rule so `--auto --squash` can complete the merge once required checks pass.
Pairs with giantswarm/github-workflows#192, which is what adds the auto-approve step in the reusable workflow. Without this devctl change, every release-please-using repo would need a hand-edited PR to wire the new secrets through.
Why this is needed
`gh pr merge --auto` never completes on release-please PRs in repos with required-approval branch protection, because nothing satisfies the approval requirement:
Adding a dedicated approver App whose review counts is the smallest fix that preserves "human review required for normal PRs" while letting release PRs flow through.
Backwards compatibility
Both new secrets are `required: false` upstream. Repos that don't have the App installed or the org secrets configured see no behavior change — the auto-approve step is gated on the secrets being non-empty. Existing release-please repos that re-run devctl just get two extra harmless secret pass-throughs in their generated workflow.
Important caveat for adopters
The `release-please-approver` App needs `Pull requests: Read and write` AND `Contents: Read and write` permissions. `Contents: Read` alone is silently disregarded by branch protection — the review is recorded as `APPROVED` but `reviewDecision` stays `REVIEW_REQUIRED` and `authorAssociation` reports `NONE`. This is poorly documented; flagging it here so the next person installing the App doesn't lose an hour to it (I did).
Test plan