OSAC-3734: enable merge queue for osac monorepo - #180
Conversation
|
Warning Review limit reached
Next review available in: 25 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Repository: osac-project/coderabbit/.coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
WalkthroughThe Terraform module now supports optional GitHub merge queues. The ChangesMerge queue support
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 11✅ Passed checks (11 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
Replace Tide-based merge automation with GitHub's native merge queue: - Add merge_queue variable and rule to common_repository module - Disable strict status checks when merge queue is enabled (queue handles freshness by testing each PR against latest main) - Gate on label-gate workflow (reads Prow-set lgtm/approved/jira labels, converts to a status check the merge queue can gate on) - Keep required_approvals=null (Prow plugins handle approval via OWNERS, not native GitHub reviews) - Remove openshift-merge-robot from push_allowances (merge queue handles merging, Tide no longer pushes) Companion PRs: - osac-project/osac: add label-gate.yml workflow - openshift/release: remove Tide merge queries (keep all Prow plugins) Assisted-by: Claude Code <noreply@anthropic.com> Signed-off-by: omer-vishlitzky <omer.vishlitzky@gmail.com>
8e2a6e4 to
949cead
Compare
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 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 `@repositories.tf`:
- Around line 144-147: Update the repository rule’s required_approvals setting
from null to 1 to enforce one native GitHub approval, and revise the adjacent
comment to accurately describe this requirement alongside the Prow label checks.
- Around line 168-169: Update min_entries_to_merge in the repository merge
configuration to a non-singleton batch floor, such as 2, so
min_entries_to_merge_wait_minutes can enforce the intended wait for additional
queued PRs.
- Around line 148-155: Verify that the workflow producing “label-gate /
check-labels” is triggered by merge_group and reports
github_context/integration_id 15368, updating the merge-queue workflow
configuration as needed. Also validate the required_status_checks entries for
the e2e-vmaas, e2e-bmaas, and e2e-caas contexts against the statuses their CI
workflows actually publish, correcting mismatches.
🪄 Autofix
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: Repository: osac-project/coderabbit/.coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: d7af562b-03df-476d-a7e6-fc3db03bedd3
📒 Files selected for processing (1)
repositories.tf
Summary
Enable GitHub merge queue on
osac-project/osac, replacing Tide as the merge automation layer.Why
Since moving to the monorepo, CI breaks frequently because Tide cannot retest PRs when main advances. Tide's staleness detection only works with native Prow jobs — OSAC uses GitHub Actions exclusively. With zero Prow presubmits configured, Tide's per-context staleness bookkeeping iterates an empty list and never executes. Its merge gate only checks whether a required GitHub Actions check is currently reporting success — it has no concept of "was this success computed against an old base SHA." Once a PR's checks pass, nothing re-verifies them against a moving main. This is confirmed upstream behavior, not a bug (prow#356, test-infra#20713).
How it works
Prow plugins continue setting labels via OWNERS files — nothing changes for developers. The
label-gateworkflow bridges labels → status checks (merge queue can only gate on status checks, not labels). Tide merge queries are removed entirely (separate openshift/release PR).Changes in this PR
modules/common_repository/variables.tfmerge_queuevariable (reusable for other repos)modules/common_repository/main.tfmerge_queuerule to ruleset; setstrict=falsewhen merge queue enabledrepositories.tflabel-gate / check-labelsto required checks; setrequired_approvals=null(Prow handles approval); removeopenshift-merge-robotfrom push allowancesMerge queue config
merge_methodREBASErequired_linear_historyis on; squash is disabledmax_entries_to_buildmax_entries_to_mergemin_entries_to_mergemin_entries_to_merge_wait_minutescheck_response_timeout_minutesgrouping_strategyALLGREENDeveloper UX (what changes)
/lgtm+/approve+ Jira ref → Tide merges/lgtm+/approve+ Jira ref → dev clicks "Add to merge queue" → queue tests against latest main → merges/retestafter main movesCompanion PRs — merge in this order
label-gate.ymlworkflow (must exist before this PR adds it as required check)label-gate / check-labelsto required checksTest plan
tofu planshows expected changes (merge_queue rule added, strict=false, label-gate required)lgtm+approved+jira/valid-referencelabels can't enter queuemerge_grouptrigger🤖 Generated with Claude Code