summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuriy Andamasov <yuriy@vyos.io>2026-06-08 01:17:39 +0300
committerYuriy Andamasov <yuriy@vyos.io>2026-06-08 01:17:39 +0300
commit1eca1bca83e69b5786a3538419df96caa0df9d97 (patch)
treeb9a4364273dc834df355d432233c9db70d4b185d
parent69fccf7db6857106e13fa29fee63176c3b52248d (diff)
downloadvyos.vyos-t8966-legacy-task-id-escape.tar.gz
vyos.vyos-t8966-legacy-task-id-escape.zip
T8966: add legacy-label escape to invalid-task-id rule (commit check exempt)t8966-legacy-task-id-escape
The per-repo T-ID rule flagged every commit's first line, but on repos that squash-merge AND block force-push (vyos.vyos enforces non_fast_forward on ~ALL branches, zero bypass) authors cannot rewrite history to make existing commits conform. The label became unclearable. Keep the title check (always fixable), and exempt the per-commit check when a maintainer applies the new `legacy` label. New PRs are still nudged toward the convention. 🤖 Generated by [robots](https://vyos.io)
-rw-r--r--.github/mergify.yml20
1 files changed, 14 insertions, 6 deletions
diff --git a/.github/mergify.yml b/.github/mergify.yml
index 49298b52..43353ea4 100644
--- a/.github/mergify.yml
+++ b/.github/mergify.yml
@@ -6,11 +6,17 @@ merge_protections_settings:
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).
+ Product-repo convention: the PR title AND every commit's first line must
+ match `T<digits>: <text>` (optional `scope: ` prefix). The title is always
+ checked; the per-commit check is exempted when a maintainer applies the
+ `legacy` label — an escape hatch for grandfathered PRs whose commit history
+ cannot be rewritten (repos that squash-merge AND block force-push, e.g.
+ vyos.vyos enforces `non_fast_forward` on ~ALL branches with zero bypass).
+ New PRs are still nudged toward the convention; `legacy` is the deliberate,
+ maintainer-controlled opt-out. Relocated from the central config (T8966)
+ so the convention is opt-in per product repo. Name is intentionally
+ distinct from any central rule name so this stays additive (not an
+ `extends:` override). Legacy-label escape added 2026-06-08 (T8966).
conditions:
- '-closed'
- '-merged'
@@ -19,7 +25,9 @@ pull_request_rules:
- '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]+).*'
+ - and:
+ - 'label!=legacy'
+ - 'commits[*].commit_message~=^(?!(([a-zA-Z0-9\-_.]+:\s)?)T\d+:\s+[^\s]+).*'
actions:
label:
toggle: