Parent roadmap: #525
Parent phase: #528
Background
Maintainers spend effort deciding who should review a PR. Gittensory can suggest reviewers from CODEOWNERS, de-weighted by current load — advisory by default.
Goal
Advisory reviewer routing surfaced in the PR panel / maintainer-packet.
Current Behavior
No CODEOWNERS parsing or reviewer-routing references exist in src.
Desired Behavior
- New
src/github/codeowners.ts parser (fetch .github/CODEOWNERS via existing contents:read) + src/signals/reviewer-routing.ts ranking owners de-weighted by buildBurdenForecast load.
- Surface ranked suggestions in the panel + maintainer-packet. Auto-request reviewers only when
reviewerRoutingMode=auto_request.
Implementation Requirements
- Cache CODEOWNERS per repo+ref. Load shown as a band (light/busy), not raw counts.
Public/Private Output Boundaries
- Reviewer logins are public repo metadata; no private scoring implied. Never auto-request for first-time external contributors without opt-in.
Acceptance Criteria
- Suggestions match changed-file ownership and reflect load; auto-request strictly opt-in.
Testing Requirements
npm run test:ci, 97%+ coverage. CODEOWNERS parser tests + ranking tests + opt-in guard test.
Parent roadmap: #525
Parent phase: #528
Background
Maintainers spend effort deciding who should review a PR. Gittensory can suggest reviewers from CODEOWNERS, de-weighted by current load — advisory by default.
Goal
Advisory reviewer routing surfaced in the PR panel / maintainer-packet.
Current Behavior
No CODEOWNERS parsing or reviewer-routing references exist in
src.Desired Behavior
src/github/codeowners.tsparser (fetch.github/CODEOWNERSvia existingcontents:read) +src/signals/reviewer-routing.tsranking owners de-weighted bybuildBurdenForecastload.reviewerRoutingMode=auto_request.Implementation Requirements
Public/Private Output Boundaries
Acceptance Criteria
Testing Requirements
npm run test:ci, 97%+ coverage. CODEOWNERS parser tests + ranking tests + opt-in guard test.