feat: add CODEOWNERS for automated review routing#41
Conversation
Route PRs to appropriate reviewers based on file paths: - Default: visitran-reviewers-l1 (Tahier, Salahudeen, Deepak G) - Backend + Core: also visitran-reviewers-l2 (Jaseem, Ritwik, Abhishek, Hari) - CI/CD + Docker: visitran-admins Branch protection "Require CODEOWNERS review" is already enabled. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
| Filename | Overview |
|---|---|
| .github/CODEOWNERS | New CODEOWNERS file with correct last-match-wins ordering; previous feedback (ci/ admin coverage, /*.md removal, visitran/ L1+L2) is fully addressed — minor gap for pypi_server/ and a stale PR description table entry remain. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
PR[Pull Request opened] --> MATCH{CODEOWNERS\nlast-match-wins}
MATCH -->|"/.github/, /docker/, /ci/"| ADMIN["@Zipstack/visitran-admins\n(Shuveb, Arun, Jaseem, Ritwik, Hari, Wicky, Mathumathi)"]
MATCH -->|"/backend/, /visitran/"| L1L2["@visitran-reviewers-l1\n+ @visitran-reviewers-l2\n(Tahier, Salahudeen, Deepak G\n+ Jaseem, Ritwik, Abhishek, Hari)"]
MATCH -->|"/frontend/, /tests/, /docs/"| L1["@visitran-reviewers-l1\n(Tahier, Salahudeen, Deepak G)"]
MATCH -->|"* (catch-all)\nincl. pypi_server/, .devcontainer/"| L1_DEFAULT["@visitran-reviewers-l1\n(Tahier, Salahudeen, Deepak G)"]
ADMIN --> APPROVE[Approval required to merge]
L1L2 --> APPROVE
L1 --> APPROVE
L1_DEFAULT --> APPROVE
Prompt To Fix All With AI
This is a comment left during a code review.
Path: .github/CODEOWNERS
Line: 17-19
Comment:
**`pypi_server/` may warrant admin coverage**
`pypi_server/visitran-pypi-server.yaml` is a deployment/infrastructure configuration file (a YAML manifest for the package server). It currently has no explicit rule and silently falls back to the `*` catch-all, routing review to L1 only.
Given that `docker/` and `ci/` are both explicitly assigned to `@Zipstack/visitran-admins` because of their infrastructure nature, `pypi_server/` looks like it belongs in the same category. Consider adding it alongside the other infrastructure paths:
```suggestion
/.github/ @Zipstack/visitran-admins
/docker/ @Zipstack/visitran-admins
/ci/ @Zipstack/visitran-admins
/pypi_server/ @Zipstack/visitran-admins
```
How can I resolve this? If you propose a fix, please make it concise.
---
This is a comment left during a code review.
Path: .github/CODEOWNERS
Line: 11
Comment:
**PR description table is stale for `/visitran/`**
The PR description's routing table still lists `/visitran/` as requiring only `visitran-reviewers-l2`. The actual file correctly requires both L1 and L2 (matching `/backend/`). The description table should be updated to reflect this so it doesn't mislead future readers tracing why a review was or wasn't requested.
How can I resolve this? If you propose a fix, please make it concise.Reviews (2): Last reviewed commit: "fix: address Greptile review — CODEOWNER..." | Re-trigger Greptile
- Add L1 to /visitran/ rule to match /backend/ policy (last-match-wins) - Add /ci/ to admin-owned infrastructure paths - Remove redundant /*.md rule (already covered by * catch-all) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
All Greptile comments addressed in e0d6603:
|
What
.github/CODEOWNERSfile for automated PR review assignmentWhy
How
Review routing based on file paths:
*)/backend//frontend//visitran/(core)/.github/,/docker//*.md,/docs/Can this PR break any existing features. If yes, please list possible items. If no, please explain why. (PS: Admins do not merge the PR without this section filled)
Database Migrations
Env Config
Notes on Testing
Checklist
I have read and understood the Contribution Guidelines.