Skip to content

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

Merged
dmbaturin merged 1 commit into
currentfrom
T8852-mergify-extends
May 14, 2026
Merged

T8852: migrate .github/mergify.yml to extends: mergify#42
dmbaturin merged 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/vyos-http-api-tools → resolves to vyos/mergify (uses @vyos/maintainers)
  • Mirror-propagated to VyOS-Networks/vyos-http-api-tools (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: 4108c8ec-9e29-4357-a249-e8b5c79c681d

📥 Commits

Reviewing files that changed from the base of the PR and between dd9a5da and fcf1d51.

📒 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

Additional Context Summary

Based on the Mergify documentation, here are the key facts relevant to this PR:

How extends: mergify Works

The extends keyword allows a repository to inherit configuration from another repository. When used, the extended configuration is loaded first, followed by any local configuration in the current repository. In this case, extends: mergify means the repository will inherit rules from a centralized mergify configuration repository within the same organization.

Pull Request Rules Configuration

The removed pull_request_rules that labeled conflicting PRs with conflicts implements a conflict warning pattern. Per Mergify documentation, this commonly uses a condition checking for conflicts and applies a label to alert authors.

Commands Restrictions

The removed commands_restrictions block for the backport command is a standard Mergify feature that restricts who can trigger slash commands like @Mergifyio backport. The documentation shows this is configured per-command with conditions to limit execution scope.

Backport ignore_conflicts Setting

The setting defaults.actions.backport.ignore_conflicts: false mentioned in the PR description controls whether backport pull requests are created when cherry-pick conflicts occur. By default, this is true (create backports despite conflicts). Setting it to false means backports will only be created if there are no conflicts during the cherry-pick process.

Configuration Inheritance Pattern

Mergify supports combining extended configuration with local rules — the extended configuration loads first, and then local rules are added. This migration allows the organization to maintain conflict-labeling rules, command restrictions, and backport defaults centrally while individual repositories can add repository-specific rules if needed.

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

1-20: LGTM!


📝 Walkthrough

Summary by CodeRabbit

  • Chores
    • Simplified Mergify configuration by consolidating rules into a shared baseline configuration, reducing redundancy and improving maintainability of CI/CD automation settings.

Walkthrough

Mergify configuration consolidated from inline rule definitions to baseline inheritance. .github/mergify.yml now declares extends: mergify to inherit shared rules, removing the previous pull_request_rules labeling logic and commands_restrictions block with its backport anchor and per-command allow-lists.

Changes

Mergify Configuration Consolidation

Layer / File(s) Summary
Mergify baseline inheritance
.github/mergify.yml
Configuration refactored to use extends: mergify baseline instead of inline pull_request_rules for conflict labeling and commands_restrictions with per-command allow-lists.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed Title accurately describes the main change: migrating Mergify config to use extends directive.
Description check ✅ Passed Description comprehensively covers the refactoring, explaining what was inlined, what moved to central baseline, and how to verify.
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 the PR state on commit fcf1d51 and no additional changes are needed at this time; current CI workflow runs for this branch are passing/completing successfully.

@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.

@dmbaturin dmbaturin merged commit fde7f3d into current May 14, 2026
6 checks passed
@vyosbot vyosbot added mirror-initiated This PR initiated for mirror sync workflow mirror-completed This PR has been mirrored successfully and removed mirror-initiated This PR initiated for mirror sync workflow labels May 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

mirror-completed This PR has been mirrored successfully

Development

Successfully merging this pull request may close these issues.

5 participants