Skip to content

T8852: migrate .github/mergify.yml to extends: mergify#17

Open
andamasov wants to merge 1 commit into
currentfrom
T8852-mergify-extends
Open

T8852: migrate .github/mergify.yml to extends: mergify#17
andamasov wants to merge 1 commit into
currentfrom
T8852-mergify-extends

Conversation

@andamasov
Copy link
Copy Markdown
Member

Change Summary

Replace the inline T8531 predecessor Mergify config in .github/mergify.yml with extends: mergify, deferring to the per-org central baseline (vyos/mergify on the vyos side, VyOS-Networks/mergify on the mirror).

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Code style update (formatting, renaming)
  • Refactoring (no functional changes)
  • Other (please describe):

Related Task(s)

Related PR(s)

Component(s) name

CI / Mergify configuration

Proposed changes

Old .github/mergify.yml inlined two stanzas verbatim from the T8531 predecessor rollout:

  • pull_request_rules — label conflicting PRs with conflicts.
  • commands_restrictions — restrict @Mergifyio slash commands to @vyos/maintainers + vyosbot.

Both stanzas now live in the per-org central baseline at vyos/mergify:.mergify.yml and VyOS-Networks/mergify:.mergify.yml. The central baseline also adds:

  • defaults.actions.backport.ignore_conflicts: false
  • T-ID format rules for PR title and commit message headlines (invalid-title label)

This PR replaces the inline content with a single extends: mergify directive. Per Mergify extends: semantics, mergify is resolved within the same org — so:

  • On vyos/libnss-mapuser → resolves to vyos/mergify (uses @vyos/maintainers)
  • Mirror-propagated to VyOS-Networks/libnss-mapuser (if applicable) → resolves to VyOS-Networks/mergify (uses @VyOS-Networks/maintainers)

How to test

After merge, a Maintainer can comment @Mergifyio backport <branch> on a merged PR. Mergify should accept the command and create the backport PR. Pre-merge, Mergify itself surfaces config errors as PR comments if the YAML is malformed.

Smoketest result

N/A — CI/Mergify-only change.

Checklist:

  • I have read the CONTRIBUTING document
  • I have linked this PR to one or more Phabricator Task(s)
  • My commit headlines contain a valid Task id
  • My change requires a change to the documentation
  • I have updated the documentation accordingly

Backport

If the repo carries this file on circinus and sagitta branches as well, backport via @Mergifyio backport circinus sagitta after merge.

🤖 Generated by robots

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 13, 2026

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Central YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: a150612a-25cd-401b-947a-dce7dd4c314c

📥 Commits

Reviewing files that changed from the base of the PR and between 4d4f5d3 and 314d9cf.

📒 Files selected for processing (1)
  • .github/mergify.yml
📜 Recent review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Summary
🧰 Additional context used
🔍 Remote MCP Context7

Summary of Relevant Mergify Configuration Information

extends Directive - Configuration Inheritance

The extends keyword allows you to include configuration from another repository, which is useful for sharing and reusing rules across multiple repositories. The configuration from the specified repository is loaded and applied before the configuration in the current repository. You can extend a remote configuration and add repository-specific rules by including extended configuration followed by local configuration.

Review relevance: This PR's migration to extends: mergify is an established, documented best practice for centralized configuration management.

Removed Configuration - pull_request_rules (Conflict Labeling)

Rules can automatically add a 'conflict' label to pull requests that are in conflict and post comments, with the label toggled so it's applied when a conflict is detected and removed otherwise. The PR removes this inline rule, deferring to the central baseline.

Removed Configuration - commands_restrictions (Backport Gating)

You can restrict backport command usage to a specific team or user by defining conditions in commands_restrictions. The backport command can be limited to only be executable by members of a specific team or a particular user using the sender condition. The PR removes these inline restrictions, trusting the central baseline configuration.

Backport Default Behavior

In case of a conflict during the backport process, Mergify will create a pull request with the conflict, requiring manual resolution. This behavior can be altered using the ignore_conflicts option. By default, ignore_conflicts is set to true. The PR notes that the central baseline sets defaults.actions.backport.ignore_conflicts: false, which is a stricter configuration than the Mergify default.

Title Validation Rules

The Mergify documentation shows examples of enforcing title requirements such as minimum length or including issue numbers. The PR mentions that the central baseline enforces T-ID format with an invalid-title label.


,

🔇 Additional comments (1)
.github/mergify.yml (1)

1-20: LGTM!


📝 Walkthrough

Summary by CodeRabbit

  • Chores
    • Updated pull request automation configuration to use a centralized baseline.

Walkthrough

The .github/mergify.yml configuration was refactored to replace inline automation rules with a reference to a centralized mergify baseline. Conflict PR labeling and command authorization rules are now inherited rather than defined locally in this file.

Changes

Mergify Configuration Baseline

Layer / File(s) Summary
Mergify baseline inheritance
.github/mergify.yml
Inline pull_request_rules (conflict PR labeling) and commands_restrictions (backport/command authorization) removed. Configuration now extends central mergify baseline via extends: mergify.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed Title directly and accurately describes the main change: migrating the Mergify configuration to use the extends: mergify pattern.
Description check ✅ Passed Description comprehensively explains the rationale, affected stanzas, central baseline location, and testing approach—clearly related to the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch T8852-mergify-extends

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@andamasov
Copy link
Copy Markdown
Member Author

@copilot review

Copy link
Copy Markdown

Copilot AI commented May 13, 2026

@copilot review

Reviewed on commit 314d9cf. No code changes are needed for this PR: the current branch only updates .github/mergify.yml as intended, current PR checks are passing, and the only observed failure is an older mirror workflow timeout (504) unrelated to this change.

@andamasov andamasov marked this pull request as ready for review May 13, 2026 18:04
@andamasov andamasov requested review from dmbaturin and jestabro May 13, 2026 18:05
Copy link
Copy Markdown
Contributor

@jestabro jestabro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Replace inline Mergify config with per-org version via extends directive.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants