feat(tooling): auto-assign reviewers to PRs based on custom ranking#2467
feat(tooling): auto-assign reviewers to PRs based on custom ranking#2467Carsons-Eels wants to merge 1 commit intoethereum:forks/amsterdamfrom
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## forks/amsterdam #2467 +/- ##
================================================
Coverage 86.24% 86.24%
================================================
Files 599 599
Lines 36984 36984
Branches 3795 3795
================================================
Hits 31895 31895
Misses 4525 4525
Partials 564 564
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
SamWilsn
left a comment
There was a problem hiding this comment.
This is... a lot of tooling complexity. Could we maybe start with something simpler and see how that goes?
Maybe just "request the two members of STEEL1 with the fewest assigned pull requests"? The chance of hitting two OoO people is probably low enough, and we can avoid hardcoding a list of reviewers that way.
Unless we've determined we need all of these criteria, I'd prefer to start minimal and grow as necessary.
Footnotes
-
↩gh api /orgs/ethereum/teams/steel/members --jq '.[].login'
| name: Auto-assign reviewer | ||
|
|
||
| on: | ||
| pull_request: |
There was a problem hiding this comment.
I think using pull_request_target would be appropriate for this workflow. That way any pull request will get assigned, not just ones made by people with write permission.
Would have to double check for any security concerns, but I think it's okay to use here.
There was a problem hiding this comment.
I'll update this.
Yeah... I went a little overboard haha. I can simplify it, sure.
That was my more ambitious idea, and would require me setting up some stuff in google to allow the script access anyway, which could turn into a headache to maintain. I'll cut it out for now and reconsider if the remaining factors really add value. |
eba6895 to
9b63de8
Compare
9b63de8 to
35e8bda
Compare
🗒️ Description
Add automated reviewer assignment for PRs using a weighted scoring system that considers workload, file familiarity, review recency, PR complexity, and OOO status.
Components:
.github/scripts/assign_reviewer.py— shared Python script that scores candidates and selects a reviewer.github/workflows/assign-reviewer.yaml— auto-assigns a reviewer when a non-draft PR is opened or marked ready.github/team.yml— team roster with GitHub usernames and emails.claude/commands/reassign-reviewer.md— Claude Code skill for manual re-assignment after fixesSelection factors (weighted):
Requires repo secrets:
STEEL_OOO_URLandSTEEL_OOO_KEYfor the OOO calendar endpoint.🔗 Related Issues or PRs
✅ Checklist
type(scope):.toxchecks to avoid unnecessary CI fails, see also Code Standards and Enabling Pre-commit Checks:uvx tox -e staticCute Animal Picture