From c05b0a2ed4155949e805a6b4cb4bcbd8fa3b5810 Mon Sep 17 00:00:00 2001 From: Mehdi Date: Sat, 7 Feb 2026 20:32:33 +0000 Subject: [PATCH] feat: auto-close pull requests from non-owner --- .github/workflows/enforce-owner-prs.yml | 36 +++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 .github/workflows/enforce-owner-prs.yml diff --git a/.github/workflows/enforce-owner-prs.yml b/.github/workflows/enforce-owner-prs.yml new file mode 100644 index 0000000..28c0f79 --- /dev/null +++ b/.github/workflows/enforce-owner-prs.yml @@ -0,0 +1,36 @@ +name: Enforce Owner PRs + +on: + pull_request_target: + types: + - opened + - reopened + - synchronize + +permissions: + pull-requests: write + contents: read + +jobs: + owner_gate: + if: ${{ github.event.pull_request.user.login != 'Mehdi-Bl' }} + runs-on: ubuntu-latest + steps: + - name: Close unauthorized PR + uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7 + with: + script: | + const number = context.payload.pull_request.number; + const author = context.payload.pull_request.user.login; + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: number, + body: `Closing PR from @${author}: this repository only accepts PRs from @Mehdi-Bl.` + }); + await github.rest.pulls.update({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: number, + state: 'closed' + });