Fix release docs reviewer routing - #1124
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Pull request overview
This PR updates the .github/workflows/upstream-release-docs.yml reviewer assignment logic to avoid pinging external (non-collaborator) contributors for “no docs impact” commits, and to add a stand-in reviewer fallback when GitHub rejects review requests for non-collaborator docs-facing contributors.
Changes:
- Restricts “No docs impact identified” @-mentions to docs-website collaborators; counts external contributors without mentioning them.
- Adds stand-in reviewer resolution by finding the merger of the upstream PR containing a contributor’s first commit, and requests review from that merger when the contributor can’t be assigned.
- Extends PR-body augmentation to include stand-in explanations and separate member vs external FYI counts.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Use GitHub's review-request result as the repository-access check and route rejected docs-facing contributors to the human mergers of their specific upstream PRs. Keep owner and noisy fallback behavior, avoid contributor pings, and cover the routing cases with tests.
7c238d2 to
71a23f8
Compare
jhrozek
left a comment
There was a problem hiding this comment.
LGTM overall. I found a few routing edge cases worth addressing before this workflow becomes the source of truth for review assignment.
|
@jhrozek thanks for the review! I've addressed the items you pointed out. |
Description
Fixes reviewer-routing regressions introduced by #1111 and exposed by #1120, without adding a PAT or organization-membership permission.
The workflow now treats GitHub's review-request response as the repository-access check and fails closed when GitHub cannot provide a reliable decision:
REVIEWERS.jsonfalls back to requesting every release contributor.Reviewer assignment now lives in a focused Python helper instead of inline workflow Bash. Regression tests cover access rejection versus operational API failure, unconditional owner review, docs-facing owner fallback, missing and invalid classification fallbacks, conflicting duplicate classifications, multiple docs-facing PRs, stand-in deduplication, non-docs-facing counts, unresolved owner handling, and unresolved stand-in routing.
Type of change
Related issues/PRs
Testing
python3 -m unittest discover -s .github/scripts -p 'test_*.py'actionlint .github/workflows/upstream-release-docs.yml .github/workflows/_static-checks.yamlzizmor .github/workflows/upstream-release-docs.yml .github/workflows/_static-checks.yamlnpm run prettiernpm run eslintnpm run buildSubmitter checklist
Content and formatting
Reviewer checklist
Content