summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/mergify.yml41
1 files changed, 41 insertions, 0 deletions
diff --git a/.github/mergify.yml b/.github/mergify.yml
new file mode 100644
index 0000000..2cc6e39
--- /dev/null
+++ b/.github/mergify.yml
@@ -0,0 +1,41 @@
+# yaml-language-server: $schema=https://docs.mergify.com/mergify-configuration-schema.json
+# Mergify configuration for vyos/shim-signed.
+#
+# Inherits the central baseline from vyos/mergify (its .mergify.yml on the
+# default branch). The central baseline provides:
+# - conflict labeling (`conflicts`, `backport-conflict`)
+# - convention-agnostic merge protections: loose PR-title gate
+# (`invalid-title`), minimal-body gate (`invalid-body`, #body<80),
+# and the WIP merge gate (`WIP`)
+# - @Mergifyio command restrictions (org Maintainers + vyosbot)
+#
+# Onboarded to `extends` under the T8966 onboard-to-extends follow-up. The
+# per-repo rule below opts this product repo into the strict T<digits>:
+# convention. It is additive (a distinct rule name, not an `extends` override)
+# and bot-excluded, identical to the 49-repo product fleet (IS-531).
+
+extends: mergify
+merge_protections_settings:
+ reporting_method: check-runs
+
+pull_request_rules:
+ - name: Flag product T-ID format violation in PR title or commit messages
+ description: >
+ Product-repo convention: PR title and every commit's first line must
+ match `T<digits>: <text>` (optional `scope: ` prefix). Relocated from
+ the central config (T8966) so the T-ID convention is opt-in per product
+ repo. Name is intentionally distinct from any central rule name so this
+ stays additive (not an `extends:` override).
+ conditions:
+ - '-closed'
+ - '-merged'
+ - '-author~=\[bot\]$'
+ - 'author!=copilot-swe-agent'
+ - 'author!=vyosbot'
+ - or:
+ - '-title~=^(([a-zA-Z0-9\-_.]+:\s)?)T\d+:\s+[^\s]+.*'
+ - 'commits[*].commit_message~=^(?!(([a-zA-Z0-9\-_.]+:\s)?)T\d+:\s+[^\s]+).*'
+ actions:
+ label:
+ toggle:
+ - invalid-task-id