T8782: add central Mergify baseline for vyos org#1
Conversation
Adds `.mergify.yml` carrying the shared `commands_restrictions` block (9 keys: backport, copy, dequeue, queue, rebase, refresh, requeue, squash, update) and the `Label conflicting pull requests` rule. Per-repo files will reference this via `extends: mergify-config`. 🤖 Generated by [robots](https://vyos.io)
|
ℹ️ Recent review info⚙️ Run configurationConfiguration used: Central YAML (base), Organization UI (inherited) Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📜 Recent review details🧰 Additional context used🔍 Remote MCP Context7Additional relevant facts for review
Sources/tools used:
🔇 Additional comments (5)
📝 WalkthroughSummary by CodeRabbit
WalkthroughAdds a repository-level ChangesMergify Configuration
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
✨ Simplify code
Warning Review ran into problems🔥 ProblemsGit: Failed to clone repository. Please run the Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@copilot review |
Code Review — The configuration looks correct. Here's a summary:
General
|
Flip Mergify default from "commit conflict markers and open PR labeled `conflicts`" to "fail the backport, comment on source PR, create no destination PR." See in-file comment for the 2026-05-12 incident in vyos/vyos-documentation (#1994 → #1998/#1999 → conf.py markers merged → RTD `SyntaxError`) that drove this. Also fix stale `mergify-config` references in the header comment to match the repo rename (2026-05-09). This default is dormant for any repo until it adopts `extends: mergify` in its own `.mergify.yml`. The ~140 existing per-repo configs from T8531/T8615 are unaffected by this change. 🤖 Generated by [robots](https://vyos.io)
Adds two `pull_request_rules` that flag PRs whose title or commit message
headlines do not match the required T-ID format:
^(([a-zA-Z0-9\-_.]+:\s)?)T\d+:\s+[^\s]+.*
Examples that pass:
- `T99999: make IPsec secure`
- `dhcpv6: T8849: Add time-zone support for Kea DHCPv6`
Failing PRs get one of two labels:
- `invalid-title` — PR title does not conform
- `invalid-commit-title` — at least one commit's first line does not
conform
This replaces the reusable workflow at
vyos/.github/.github/workflows/check-pr-message.yml and the per-repo
caller workflows that invoke it. Coverage is dormant in any repo until
it adopts `extends: mergify` in its own `.mergify.yml`; until then the
existing GHA continues to run unchanged.
Implementation notes:
- Mergify exposes only `commits[*].commit_message` (full message, not
headline-only), but default Python `re` flags make `^` = start-of-
string and `.*` non-newline-matching, so `^<pattern>` effectively
checks the first line — equivalent to the GHA's `messageHeadline`.
- Because `commits[*]` returns true on ANY-match and Mergify has no
`!~=` operator, the commit-message rule uses a negative-lookahead
regex that fires when at least one commit's first line does NOT
conform.
- Regex verified locally against representative valid samples (5 pass)
and invalid samples (6 caught, including `Bump foo from 1.2.3 to
1.2.4` and `Merge pull request #...` — same behavior as the existing
GHA, no regression).
Migration sequence (out of scope for this commit):
1. This PR lands; rules dormant.
2. Per-repo PRs add `extends: mergify` (vyos-documentation PR #2005
is the first canary).
3. After parallel coverage confirms equivalence, retire per-repo
check-pr-message.yml callers and the central reusable workflow
in vyos/.github.
🤖 Generated by [robots](https://vyos.io)
Summary
.mergify.ymltovyos/mergifyas the central baseline for thevyosorg.commands_restrictions(9 keys: backport, copy, dequeue, queue, rebase, refresh, requeue, squash, update) restricted to@vyos/maintainersandvyosbot.Label conflicting pull requestsrule.defaults.actions.backport.ignore_conflicts: falseso backport cherry-picks that conflict now fail loudly (error comment on source PR, no destination PR created) instead of committing literal<<<<<<< / ======= / >>>>>>>markers. See in-file comment for the 2026-05-12 incident invyos/vyos-documentation(#1994 → #1998/#1999 → conf.py markers merged → RTDSyntaxError) that drove this default.pull_request_rulesthat flag PRs whose title or commit-message headlines do not match theT<digits>: <text>(optionallyscope: T<digits>: <text>) format. These replace the reusable workflow atvyos/.github/.github/workflows/check-pr-message.yml; coverage is dormant in any repo until it adoptsextends: mergify..mergify.ymlfiles reference this viaextends: mergify.Context
Part of T8782 (Mergify central-config rollout). This is subtask T8785 — the
vyos-org central baseline PR (1 of 25).Spec: Mergify Configuration Rollout — Spec v9
IS ticket: IS-432
Note on the repo name: this repo was renamed
mergify-config→mergifyon 2026-05-09. Any references in the PR description above that earlier readmergify-confighave been corrected; the file content uses the current name.Verification (§7 Tier 1 Checkpoint A)
After merge, open a trivial test PR (whitespace-only README change, ready-for-review) and verify:
mergify/summaryconclusion: "success"output.summarycontainsLabel conflicting pull requests🤖 Generated by robots