diff --git a/.github/scripts/reviewers_remove.js b/.github/scripts/reviewers_remove.js new file mode 100644 index 00000000..9e44e4ac --- /dev/null +++ b/.github/scripts/reviewers_remove.js @@ -0,0 +1,16 @@ +module.exports = async ({ github, context }) => { + const requestedReviewers = await github.rest.pulls.listRequestedReviewers({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: context.issue.number, + }); + + const reviewers = requestedReviewers.data.users.map((e) => e.login); + + github.rest.pulls.removeRequestedReviewers({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: context.issue.number, + reviewers: reviewers, + }); +}; diff --git a/.github/workflows/reviewers_remove.yml b/.github/workflows/reviewers_remove.yml new file mode 100644 index 00000000..b10d8c3d --- /dev/null +++ b/.github/workflows/reviewers_remove.yml @@ -0,0 +1,17 @@ +name: "reviewers: remove" +on: + pull_request_target: + types: [converted_to_draft, closed] +jobs: + remove-reviewers: + runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: + - uses: actions/checkout@v4 + - name: 'Remove reviewers' + uses: actions/github-script@v7 + with: + script: | + const script = require('./.github/scripts/reviewers_remove.js') + await script({github, context})