From 6703e9f512c5b5973fe7f67091b4c59b9e4a39d0 Mon Sep 17 00:00:00 2001 From: Noah Zweben Date: Tue, 6 Jan 2026 15:06:28 -0800 Subject: [PATCH] Add workflow to auto-close external PRs (#140) * Add workflow to auto-close external PRs * Update PR comment wording * Add toggle to disable external PR check --- .github/workflows/close-external-prs.yml | 43 ++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 .github/workflows/close-external-prs.yml diff --git a/.github/workflows/close-external-prs.yml b/.github/workflows/close-external-prs.yml new file mode 100644 index 0000000..44cacf4 --- /dev/null +++ b/.github/workflows/close-external-prs.yml @@ -0,0 +1,43 @@ +name: Close External PRs + +on: + pull_request_target: + types: [opened] + +jobs: + check-membership: + if: vars.DISABLE_EXTERNAL_PR_CHECK != 'true' + runs-on: ubuntu-latest + steps: + - name: Check if author is org member + uses: actions/github-script@v7 + with: + script: | + const org = 'anthropics'; + const author = context.payload.pull_request.user.login; + + try { + await github.rest.orgs.checkMembershipForUser({ + org: org, + username: author + }); + console.log(`${author} is an org member, allowing PR`); + } catch (e) { + if (e.status === 404) { + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.payload.pull_request.number, + body: `Thanks for your interest! This repo only accepts contributions from Anthropic team members. If you'd like to submit a plugin to the marketplace, please submit your plugin [here](https://docs.google.com/forms/d/e/1FAIpQLSdeFthxvjOXUjxg1i3KrOOkEPDJtn71XC-KjmQlxNP63xYydg/viewform).` + }); + + await github.rest.pulls.update({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: context.payload.pull_request.number, + state: 'closed' + }); + + console.log(`Closed PR from external contributor: ${author}`); + } + }