From 1a69dd26ca1a81d552ea8221868c85a7d79420e7 Mon Sep 17 00:00:00 2001 From: Vanshaj Poonia Date: Mon, 25 May 2026 13:09:16 +0530 Subject: [PATCH] feat: auto-close inactive merge-conflicted PRs --- .github/workflows/stale-merge-conflicts.yml | 58 +++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 .github/workflows/stale-merge-conflicts.yml diff --git a/.github/workflows/stale-merge-conflicts.yml b/.github/workflows/stale-merge-conflicts.yml new file mode 100644 index 00000000..755715d6 --- /dev/null +++ b/.github/workflows/stale-merge-conflicts.yml @@ -0,0 +1,58 @@ +name: Close stale merge-conflicted PRs + +on: + schedule: + - cron: "17 2 * * *" + workflow_dispatch: + +permissions: + contents: read + issues: write + pull-requests: write + +jobs: + stale-merge-conflicts: + runs-on: ubuntu-latest + + steps: + - name: Warn and close inactive merge-conflicted PRs + uses: actions/stale@v10 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + + # Do not process issues. + days-before-issue-stale: -1 + days-before-issue-close: -1 + + # Only process PRs that still have unresolved merge conflicts. + only-pr-labels: "PR has merge conflicts" + + # Warn after 30 inactive days, then close after 5 more inactive days. + days-before-pr-stale: 30 + days-before-pr-close: 5 + + # Use a separate stale label so the original merge-conflict label keeps its meaning. + stale-pr-label: "stale merge conflict" + close-pr-label: "closed stale merge conflict" + + # If the contributor comments or updates the PR, remove stale state and restart the timer. + remove-pr-stale-when-updated: true + + # Help process larger backlogs across daily runs. + operations-per-run: 100 + + stale-pr-message: | + ⚠️ **This PR still has merge conflicts and has been inactive for 30 days.** + + This PR still has the `PR has merge conflicts` label and there has been no recent activity. + + Please resolve the merge conflicts or leave a comment if you are still working on this PR. + + If there is no activity for 5 more days, this PR may be automatically closed to help maintainers keep the pull request backlog manageable. + + close-pr-message: | + 🔒 **Closing this PR due to unresolved merge conflicts and inactivity.** + + This PR still had merge conflicts and there was no activity for 5 days after the stale warning. + + You can reopen this PR or create a new one after resolving the merge conflicts.