Add workflow to enforce merge blockers on PRs (#21880)

No User Facing changes.

Avoids accidental merges when the Do Not Merge, Maintainer Discussion,
or Lore Discussion labels are set on a PR.

[Credit to Baystation for the
inspiration.](https://github.com/Baystation12/Baystation12/pull/35046)

---------

Signed-off-by: Cody Brittain <1779662+Generalcamo@users.noreply.github.com>
This commit is contained in:
Cody Brittain
2026-02-21 12:17:35 -05:00
committed by GitHub
parent e57918f133
commit 24baee2e8a
@@ -0,0 +1,34 @@
name: "'Do Not Merge' Blockers"
on:
pull_request:
types: [synchronize, opened, labeled, unlabeled]
jobs:
donotmerge-blocker:
name: Enforce Do Not Merge Labels
runs-on: ubuntu-latest
steps:
- name: Enforce Maintainer Discussion Label
if: contains(github.event.pull_request.labels.*.name, '⛔ Maintainer Discussion')
run: |
echo "Pull request is labelled Maintainer Discussion, and must be approved by the maintainers before this PR can be merged."
exit 1
- name: Enforce Lore Discussion Label
if: contains(github.event.pull_request.labels.*.name, '⛔ Lore Discussion')
run: |
echo "Pull request is labelled Lore Discussion, and must be approved by the relevant lore team before this PR can be merged."
exit 1
- name: Enforce Do Not Merge Label
if: contains(github.event.pull_request.labels.*.name, '🚫 Do Not Merge')
run: |
echo "Pull request is labelled Do Not Merge and cannot be merged in this state. Refer to the developer who set this label for information."
exit 1
- name: Enforce Changes Required Label
if: contains(github.event.pull_request.labels.*.name, 'Changes Required')
run: |
echo "Pull request is labelled Changes Required and cannot be merged in this state. Refer to the developer who set this label for information."
exit 1