From 9d8f57d8e4e409f9ec7a8d3665b76fb5778ba4cd Mon Sep 17 00:00:00 2001 From: Ben Henning Date: Mon, 28 Jul 2025 12:23:57 -0700 Subject: [PATCH] chore: Create workflow for auto-adding assigners --- .github/workflows/assign_reviewers.yml | 43 ++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 .github/workflows/assign_reviewers.yml diff --git a/.github/workflows/assign_reviewers.yml b/.github/workflows/assign_reviewers.yml new file mode 100644 index 00000000..850c7c80 --- /dev/null +++ b/.github/workflows/assign_reviewers.yml @@ -0,0 +1,43 @@ +name: Assign requested reviewers + +# This workflow adds requested reviewers as assignees. If you remove a +# requested reviewer, it will not remove them as an assignee. +# +# See https://github.com/google/blockly/issues/5643 for more +# information on why this was added. +# +# N.B.: Runs with a read-write repo token. Do not check out the +# submitted branch! +on: + pull_request_target: + types: [review_requested] + +jobs: + requested-reviewer: + runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: + - name: Assign requested reviewer + uses: actions/github-script@v7 + with: + script: | + try { + if (context.payload.pull_request === undefined) { + throw new Error("Can't get pull_request payload. " + + 'Check a request reviewer event was triggered.'); + } + const reviewers = context.payload.pull_request.requested_reviewers; + // Assignees takes in a list of logins rather than the + // reviewer object. + const reviewerNames = reviewers.map(reviewer => reviewer.login); + const {number:issue_number} = context.payload.pull_request; + github.rest.issues.addAssignees({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: issue_number, + assignees: reviewerNames + }); + } catch (error) { + core.setFailed(error.message); + }