ci(mergify): stop auto-queuing human PRs#191
Conversation
The 'default' queue carried queue_conditions matching every human PR to main (base = main, author != bots), which auto-routed human PRs into the merge queue -- contradicting the rule's own 'manually enqueued via /queue' comment. Remove them so the default queue has no automatic entry: only dosubot and dependabot auto-queue (via auto_merge_conditions), and human PRs require an explicit /queue command from a maintainer. Mirrors the manual-only default queue in the opnDossier config. Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
📝 WalkthroughUpdated
No changes were made to merge protections, CI checks, or auto-merge settings. WalkthroughThe default queue rule in ChangesMergify Queue Configuration
Estimated code review effort: 1 (Trivial) | ~2 minutes Suggested labels: Poem
🚥 Pre-merge checks | ✅ 9 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (9 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Merge Protections🔴 1 of 5 protections blocking
🔴 🚦 Auto-queueThis rule is failing.When all merge protections are satisfied and these conditions match, this pull request will be queued automatically.
Show 4 satisfied protections🟢 📃 Configuration Change RequirementsMergify configuration change
🟢 Enforce conventional commitMake sure that we follow https://www.conventionalcommits.org/en/v1.0.0/
🟢 Full CI must passAll CI checks must pass. This protection prevents manual merges that bypass the merge queue.
🟢 Do not merge outdated PRsMake sure PRs are within 10 commits of the base branch before merging
|
There was a problem hiding this comment.
Pull request overview
This PR adjusts the repository's Mergify merge queue configuration so that human-authored PRs are no longer auto-enqueued, aligning behavior with the stated intent that maintainers must explicitly enqueue their own PRs.
Changes:
- Removed
queue_conditionsfrom thedefault(human) queue rule to prevent automatic queue entry. - Updated the surrounding comment to clarify that the
defaultqueue is manual-only and requires the/queuecommand.
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.mergify.yml:
- Around line 30-34: The default Mergify queue rule no longer restricts queued
PRs to main, so `/queue default` can now accept other target branches. Update
the default rule in the Mergify config to restore the base branch gate by adding
the main-only condition back alongside the existing merge checks. Use the
default queue entry to locate the change and keep the rule limited to
main-targeted PRs.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yml
Review profile: ASSERTIVE
Plan: Pro
Run ID: fe252cb3-9e1f-44f9-b012-a0f9597d5b7c
📒 Files selected for processing (1)
.mergify.yml
| # Human PRs: manual-only. This queue has no queue_conditions, so no PR enters | ||
| # it automatically -- a maintainer must send the `/queue` command (only | ||
| # dosubot and dependabot are auto-queued, via auto_merge_conditions below). | ||
| - name: default | ||
| merge_method: squash |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check whether merge_conditions for the `default` queue rule still restricts base = main
rg -n -A 20 'name: default' .mergify.ymlRepository: EvilBit-Labs/Stringy
Length of output: 1038
Restore the base = main gate on default
queue_conditions is gone, and the remaining merge_conditions only check CI status. That means /queue default can now accept PRs targeting branches other than main. Add base = main back to this rule if the queue is meant to stay main-only.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.mergify.yml around lines 30 - 34, The default Mergify queue rule no longer
restricts queued PRs to main, so `/queue default` can now accept other target
branches. Update the default rule in the Mergify config to restore the base
branch gate by adding the main-only condition back alongside the existing merge
checks. Use the default queue entry to locate the change and keep the rule
limited to main-targeted PRs.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
Tick the box to add this pull request to the merge queue (same as
|
Problem
Human-created PRs are being automatically added to the merge queue. Auto-queueing should be limited to
dosubotanddependabot; a maintainer should have to explicitly/queuetheir own PRs.Root cause
The
defaultqueue rule carriedqueue_conditionsmatching every human PR tomain:These were generated by the automated migration off the deprecated
autoqueueformat (#166) and directly contradict the rule's own# Human PRs: manually enqueued via /queue commandcomment. A queue with matchingqueue_conditionsroutes those PRs into the queue automatically.Fix
Remove the
queue_conditionsfrom thedefaultqueue so it has no automatic entry condition -- PRs reach it only via an explicit/queuecommand (repo permissions already restrict who can send it). Auto-queueing continues to work for the bots through the unchangedmerge_protections_settings.auto_merge_conditions, which lists onlydosubot[bot]anddependabot[bot].This mirrors the manual-only
defaultqueue in theopnDossierconfig.Notes
main, not on this PR.auto_merge_conditions.Test plan
.mergify.ymlparses as valid YAMLdefaultqueue retains all 11merge_conditions;dosubot/dependabotqueues unchanged/queue