Repository navigation
ci: rewrite multi-approvers workflow without PAT - #2720
Merged
Merged
Conversation
Port of GoogleCloudPlatform/cloud-sql-go-connector#1221. Replaces the abcxyz multi-approvers action and secrets.MULTI_APPROVERS_TOKEN with a self-contained actions/github-script check that uses the built-in GITHUB_TOKEN.
panavenue
approved these changes
Nov 11, 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
Ports GoogleCloudPlatform/cloud-sql-go-connector#1221 to this repo. The new
.github/workflows/multi-approvers.yamlis byte-identical to the one merged there.It replaces
abcxyz/actions/.github/actions/multi-approversandsecrets.MULTI_APPROVERS_TOKENwith a self-containedactions/github-scriptcheck that uses the built-inGITHUB_TOKEN.Changes
secrets.MULTI_APPROVERS_TOKEN. A user is internal whenrepos.getCollaboratorPermissionLevelreportsrole_nameinadmin,maintain,write(or legacypermissioninadmin,write). The existingUSER_ID_ALLOWLISTfor automation bots is unchanged.APPROVEDreviews from internal users. Each reviewer's latest substantive review counts (COMMENTEDandPENDINGdo not override an earlier approval, self-reviews are excluded, and any non-404 API error fails the check).permissions: {}and job-levelpull-requests: 'read'.concurrency.groupkeyed on the PR number instead ofgithub.head_ref.actions/github-scriptpinned to3a2844b7e9c422d3c10d287c895573f7108da1b3(v9.0.0).Behavior notes for reviewers
googlersteam. An org member without write on this repo is treated as external.multi-approversjob to refresh it.Verification
mainin cloud-sql-go-connector since chore(ci): don't prompt for input in tag_latest script #1221 merged. Its runs there show an allowlisted bot author passing,adminandwriteauthors passing, and an external author with 0 approvals failing with the expected message, all with a token limited toMetadata: readandPullRequests: read.scriptblock locally in Node against mockedgithub,contextandcoreobjects: 30 scenarios (review states, ordering, repeat and self reviews, 404 and 5xx lookups, env parsing), all with the expected outcome.pull_request_targetruns the workflow frommain, the new script only takes effect in this repo after merge.