Skip to content

T8764: skip auto-review of mergify[bot] backport PRs#2

Merged
andamasov merged 3 commits into
productionfrom
yuriy/t8764-ignore-mergify-bot
May 12, 2026
Merged

T8764: skip auto-review of mergify[bot] backport PRs#2
andamasov merged 3 commits into
productionfrom
yuriy/t8764-ignore-mergify-bot

Conversation

@andamasov
Copy link
Copy Markdown
Member

@andamasov andamasov commented May 12, 2026

Summary

Adds `mergify[bot]` to `reviews.auto_review.ignore_usernames` in the central CodeRabbit baseline for the `vyos` org. Mergify-opened backport PRs are mechanical cherry-picks of an already-reviewed source PR — re-reviewing them adds no signal and burns CodeRabbit's rate-limit budget. Manual `@coderabbitai review` continues to work for the rare case where a maintainer wants a fresh review on a backport PR.

Trigger

Observed today (2026-05-12): vyos/vyos-documentation#2006 (sagitta) and #2007 (circinus) were auto-opened by Mergify as backports of #2005. Both received CodeRabbit auto-reviews despite being byte-equivalent to the already-reviewed source PR. The new `ignore_usernames` entry suppresses that for every future Mergify-driven backport in the `vyos` org.

Scope

`vyos`-org central baseline only. Mirror change against `VyOS-Networks/coderabbit` in a sibling PR.

Per-repo overrides are still possible — if a downstream repo has unusual review needs for Mergify-authored PRs, it can re-enable via its own `.coderabbit.yaml` (override semantics per CodeRabbit's central-config inheritance).

Related

  • T8764 — CodeRabbit central-config rollout (master)
  • IS-430 — change ticket
  • T8782 — Mergify central-config rollout (generator of the PRs being skipped)

🤖 Generated by robots

Adds `mergify[bot]` to `reviews.auto_review.ignore_usernames` in the
central `vyos`-org CodeRabbit baseline. Mergify-opened backport PRs are
mechanical cherry-picks of an already-reviewed source PR; re-reviewing
them adds no signal and burns CodeRabbit's rate-limit budget.

Manual `@coderabbitai review` continues to work for the rare case where
a maintainer wants a fresh review on a backport PR (e.g. to confirm a
conflict resolution was handled correctly after a non-clean cherry-pick).

Behavior change observed today (2026-05-12):
  - vyos/vyos-documentation#2006 (sagitta) and #2007 (circinus) were
    auto-opened by Mergify as backports of #2005. Both got CodeRabbit
    auto-reviews despite being byte-equivalent to the already-reviewed
    source PR. This change suppresses that.

Scope: central `vyos`-org baseline only. Mirror change on
`VyOS-Networks/coderabbit:.coderabbit.yaml`.

Related: T8782 (Mergify central-config rollout) — Mergify is the
generator of these PRs; this is housekeeping on the CodeRabbit side.

🤖 Generated by [robots](https://vyos.io)
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 12, 2026

Review Change Stack
No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Pro Plus

Run ID: e577d553-a619-4b64-acf7-f7f133ba13a8

📥 Commits

Reviewing files that changed from the base of the PR and between a2d59fd and 3714494.

📒 Files selected for processing (1)
  • .coderabbit.yaml
🚧 Files skipped from review as they are similar to previous changes (1)
  • .coderabbit.yaml
📜 Recent review details
🧰 Additional context used
🔍 Remote MCP Context7

Perfect! I now have the relevant documentation. Let me provide the summary with appropriate citations.

Additional Context for PR Review

CodeRabbit Auto-Review Configuration - ignore_usernames Feature

The PR's approach to skipping auto-review for mergify[bot] is aligned with CodeRabbit's documented best practices.

Key Facts:

  1. Feature Purpose and Recommended Use: The ignore_usernames setting is explicitly recommended for excluding bots and service accounts from auto-review. PRs from configured usernames are "skipped silently without a review being posted," which prevents redundant reviews and rate-limit consumption—exactly matching the PR's stated rationale for ignoring mergify[bot].

  2. Configuration Format: The PR's configuration structure aligns with the documented standard format:

    reviews:
      auto_review:
        ignore_usernames:
          - "mergify[bot]"

    This matches documented examples using dependabot[bot], renovate[bot], and github-actions[bot].

  3. Matching Behavior: Username matching is "exact and case-sensitive, with no wildcard or regex support," and matching "takes precedence over all other controls." This means mergify[bot] will reliably skip all auto-reviews regardless of other settings (base branches, labels, etc.).

  4. Important Implementation Detail: Usernames must be copied "directly from the PR author field to avoid typos, as even a single character difference will result in the PR being reviewed." This is a critical validation point for the PR—the username mergify[bot] should be verified against the actual author field in the backport PRs mentioned (#2006, #2007).

  5. Manual Review Still Available: The PR notes that manual review via @coderabbitai review remains available—this aligns with the documented configuration, where ignore_usernames controls only automatic reviews.

Review Implication: The PR's implementation follows the documented, recommended approach for handling bot-generated PRs. The main validation needed is confirming the exact username used by mergify[bot] in the vyos organization matches the configured string precisely.


📝 Walkthrough

Summary by CodeRabbit

  • Chores
    • Updated CodeRabbit configuration: enabled early-access settings and expanded review behavior (walkthrough summaries, review details, commit-status handling, effort toggles).
    • Auto-review adjusted to ignore certain bot-authored PRs while preserving manual review requests; auto-pause remains at 0.
    • Disabled finishing touches for docstrings and unit-test generation.
    • Disabled multiple linters/tools; added provenance comments and knowledge-base/linkage settings (mcp and cross-repo instructions).

Walkthrough

.coderabbit.yaml updated: early_access: true added (Org‑UI provenance, lines 4–6); review toggles expanded and auto_pause_after_reviewed_commits: 0 documented (lines 29–41); reviews.auto_review.ignore_usernames includes mergify[bot] (lines 52–59); finishing touches disable docstrings and unit tests (lines 87–96); tools/chat/knowledge_base adjustments and linked_repositories added (lines 108–148).

Changes

Configuration Feature Toggles

Layer / File(s) Summary
Early access and review configuration
.coderabbit.yaml (lines 4–6, 29–41)
early_access: true enabled with Org‑UI provenance (lines 4–6). Review behavior toggles added/adjusted: high_level_summary_in_walkthrough, review_details, fail_commit_status, in_progress_fortune, and auto_pause_after_reviewed_commits: 0 documented (lines 29–41).
Auto-review bot exclusion
.coderabbit.yaml (lines 52–59)
reviews.auto_review.ignore_usernames introduced with mergify[bot] to skip automatic review for mechanically authored PRs; inline comment clarifies manual @coderabbitai review still works (lines 52–59).
Automation toggles and tool configuration
.coderabbit.yaml (lines 87–96, 108–148)
finishing_touches.docstrings.enabled: false and finishing_touches.unit_tests.enabled: false set at org level (lines 87–96). Multiple fleet linters/checks disabled and Org‑UI provenance comments added; knowledge_base.mcp enabled and knowledge_base.linked_repositories added for Ansible cross-repo instructions (lines 108–148).
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed Title accurately reflects the main change: adding mergify[bot] to ignore_usernames to skip auto-review of backport PRs.
Description check ✅ Passed Description comprehensively covers the change, rationale, trigger event, scope, and related references.
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
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch yuriy/t8764-ignore-mergify-bot
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch yuriy/t8764-ignore-mergify-bot

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

@andamasov andamasov marked this pull request as ready for review May 12, 2026 07:19
Copy link
Copy Markdown

Copilot AI commented May 12, 2026

@copilot review

Reviewed the current change set in 0fe71ba; no further updates are needed for this PR.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 12, 2026

CodeRabbit chat interactions are restricted to organization members for this repository. Ask an organization member to interact with CodeRabbit, or set chat.allow_non_org_members: true in your configuration.

andamasov added 2 commits May 12, 2026 11:00
Moves every CodeRabbit setting currently configured in the `vyos`-org
Web UI dashboard ("Organization UI Settings", precedence #5) into the
Central YAML (precedence #3) so the file is the single source of truth
for review behavior in the `vyos` org. Once this lands, the Org-UI YAML
editor can be cleared and behavior will be unchanged.

Why this matters: precedence rules state that Central YAML overrides
Organization UI per-field. Today they happen to agree, but any future
edit to the Web UI silently drifts from the file. Consolidating into
YAML makes drift a code-review-visible event.

Lifted fields:

* Top-level:
    - `early_access: false` -> `true` (matches Web UI explicit value)
* `reviews:`
    - `high_level_summary_in_walkthrough: true`
    - `review_details: true`
    - `fail_commit_status: true`
    - `estimate_code_review_effort: false`
    - `in_progress_fortune: false`
* `reviews.auto_review:`
    - `auto_pause_after_reviewed_commits: 0`
* `reviews.finishing_touches:`
    - `unit_tests.enabled: true` -> `false` (matches Web UI intent; per-
      repo overrides re-enable where appropriate — testing stacks differ
      enough that fleet-wide unit-test generation is too noisy)
    - `simplify.enabled: true`
* `reviews.tools:` disabled-linter list for stacks not in our fleet
    (swiftlint, detekt, rubocop, regal, pmd, circleci, shopifyThemeCheck,
    brakeman, blinter, smartyLint, emberTemplateLint)
* `chat:`
    - `allow_non_org_members: false`
    - `integrations.{jira,linear}.usage: disabled`
* `knowledge_base:`
    - `{jira,linear}.usage: disabled`
    - `mcp.usage: enabled`
    - `linked_repositories: ansible/ansible` — cross-repo context for the
      `vyos.vyos` Ansible Galaxy collection. vyos-org specific.

After this PR merges:
- Clear the Org-UI YAML editor in the CodeRabbit dashboard for the
  `vyos` org (paste back the empty schema-comment line). The Central
  YAML now expresses everything that was there.
- Sibling change for VyOS-Networks org on its own coderabbit central
  repo (omits `linked_repositories` per org-specific scope; keeps
  `early_access: false` since VyOS-Networks Org-UI did not set it).

🤖 Generated by [robots](https://vyos.io)
Sets `reviews.finishing_touches.docstrings.enabled: false` to match the
already-disabled `unit_tests.enabled: false`. Same rationale: documentation
conventions vary too much across the fleet for org-wide auto-generation to
be useful — Python repos use Sphinx-style, Go repos use godoc-style, web
repos use TSDoc-style. Repos that want CodeRabbit to fill in docstrings
opt in via their own `.coderabbit.yaml`.

🤖 Generated by [robots](https://vyos.io)
@andamasov andamasov merged commit 788cfae into production May 12, 2026
1 check passed
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.

2 participants