feat: round-robin within team when no domain specialist is eligible#9
Conversation
|
ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
💤 Files with no reviewable changes (1)
📝 WalkthroughWalkthroughThis PR refactors PR reviewer auto-assignment by adding per-repo bot author routing, moving idempotency checks earlier, replacing domain-gated squad fallback with squad-wide round-robin fallback, and updating validation and documentation accordingly. ChangesBot-authored PR routing with squad cascade refactor
Sequence Diagram(s)sequenceDiagram
participant PR as PR Event
participant WF as auto-assign-reviewer workflow
participant Config as review-map.yml
participant GH as GitHub API
PR->>WF: trigger
WF->>WF: fetch already-requested reviewers
WF->>Config: lookup bot_pr_owners[repo] if author in bot_authors
alt bot owner mapped
WF->>GH: request mapped owner
GH-->>WF: accept/reject
else no mapping
WF-->>PR: exit silently
end
WF->>Config: run squad cascade for human authors (specialist → eq-domain → round-robin → sibling)
WF->>GH: request selected reviewer
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Make the squad-wide fallback unconditional so a sole-specialist author (matjazv on backend/contracts, vardan10 on backend, ricott1 on contracts, Nazgolze on infra) gets a teammate via round-robin instead of cascading to a sibling squad. In-team review is now the priority; sibling cascade only fires when the entire team has no other eligible member. Drop the now-obsolete fallback_to_squad_members_for field and its validator block.
40d2e6a to
7b509b7
Compare
Summary
auto-assign-reviewer.yml. Previously gated by each squad'sfallback_to_squad_members_forlist; now any author whose own-squad domain specialists are exhausted (or who is the sole specialist) gets routed to a teammate via PR# round-robin before the sibling cascade fires.matjazv(backend/contracts inorg),vardan10(backend inmoney),ricott1(contracts inglobal), andNazgolze(infra inplatform) now stay in-team for review instead of crossing to a sibling squad.fallback_to_squad_members_forfield fromreview-map.ymland its validator block invalidate-review-map.yml.docs/auto-reviewer.mdcascade description and matrix legend to reflect the new in-team-priority behavior.Test plan
yq -o=json review-map.yml | jq .parses cleanly with the field removed.matjazvopens backend PR #N → Step 1 yields[matjazv] - matjazv = []→ Step 2 no equivalence → Step 3 picksorg.members - matjazvround-robin (mmarinovic,mvuco00,ikem-legend,mislavtomic).vardan10opens backend PR #N → Step 3 picks frommoney.members - vardan10round-robin (oskarleonard,Balanced02,eniolam1000752,5heri).sameersubudhiopens backend PR → Step 1 still picksishantiw(specialists keep priority over generic team round-robin).Nazgolzeopens infra PR → Step 3 picks fromplatform.members - Nazgolze(same end-state as the old gated fallback).validate-review-map.ymlpasses on the updated map (no orphanedfallback_to_squad_members_forreferences).Summary by CodeRabbit
New Features
Improvements
Documentation
Validation