mirror of
https://github.com/github/awesome-copilot.git
synced 2026-10-12 23:04:14 +00:00
* Phase 1: distributed CODEOWNERS and automated reviewer routing (#4184) - Replace the individual default CODEOWNERS owner with the core-maintainer team and add domain team ownership for extensions, plugins, content, hooks, workflows, .github, and eng. - Add .github/review-routing.yml as the single source of truth for reviewer pools, routes, labels, and SLA settings (ships in dry-run mode). - Add eng/review-routing.mjs (+ unit tests) with business-day math, least-loaded reviewer selection, routing and escalation planning, and workflow_run artifact validation. - Add Review Routing (workflow_run/dispatch/schedule), Review Routing Request (read-only needs-reviewer reader), and Review Escalation (weekday schedule) workflows. - Add needs-reviewer, review-overdue, review-escalated to setup-labels. - Document the model in docs/maintainers/review-routing.md. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Address review feedback on reviewer routing and escalation - Escalate at routedOn + escalation business days (Mon -> Fri) - Leave labels untouched when requestReviewers fails and fail the job - Serialize read/plan/apply per PR across routing and escalation - Treat Label PR Intent artifact labels as authoritative - Re-route to an uncovered pool on head changes without restarting SLA - Use the due-label timestamp as the review boundary - Fall back to pool/escalation teams and report what was requested Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Address second-round review feedback on review routing (#4184) - CODEOWNERS: route /hooks/ and /workflows/ to content reviewers, drop the separate /.github/workflows/ rule, and leave per-resource owner lines as on main (their removal is deferred to a separate cleanup). - Routing: ignore pending requests for unavailable reviewers when checking coverage; needs-reviewer excludes prior reviewers and changes nothing when no new reviewer can be requested. - Escalation comments show the actual routing date. - Cap sweep matrices at 256 targets and defer the remainder. - Docs: best-effort load balancing, matrix cap, and needs-reviewer semantics. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Route workflow and hooks labels to the content pool (#4184) Drop the workflow-security reviewer pool per maintainer feedback: agentic workflows and hooks are reviewed like other content, and the repository's own GitHub Actions workflows stay with core maintainers. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Pin routing contract in tests; make CONTRIBUTING routing note dry-run aware - Assert the exact label-to-pool mapping and priority order, pool set, and default/escalation pools for the shipped config. - CONTRIBUTING.md: describe automatic routing as active only once dry_run is turned off. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Simplify dry_run validation condition Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Co-authored-by: Aaron Powell <me@aaron-powell.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
86 lines
2.9 KiB
YAML
86 lines
2.9 KiB
YAML
# Review routing configuration — single source of truth for reviewer pools.
|
||
#
|
||
# Read by eng/review-routing.mjs from the Review Routing and Review Escalation
|
||
# workflows. See docs/maintainers/review-routing.md for the full operating model.
|
||
#
|
||
# Handles are GitHub logins without the leading "@". Team values use the
|
||
# "<org>/<team-slug>" form. Keep every pool at three or more reviewers with
|
||
# cross-time-zone coverage before turning off dry_run.
|
||
|
||
version: 1
|
||
|
||
# When true, workflows only log the actions they would take (no reviewer
|
||
# requests, labels, or comments). Set to false once the teams and pools below
|
||
# are populated.
|
||
dry_run: true # TODO: set to false after the reviewer pools are staffed.
|
||
|
||
sla:
|
||
# Business days (Monday–Friday, UTC, excluding holidays) after routing by
|
||
# which a first review is expected. The date is shown in the review-due label.
|
||
first_review_business_days: 2
|
||
# Business days after routing before the PR escalates to the core pool.
|
||
escalation_business_days: 4
|
||
# Optional non-working days (YYYY-MM-DD, UTC) skipped by business-day math.
|
||
holidays: []
|
||
|
||
labels:
|
||
needs_reviewer: needs-reviewer
|
||
due_prefix: "review-due:"
|
||
overdue: review-overdue
|
||
escalated: review-escalated
|
||
|
||
# Pool that receives escalations and acts as the last-resort fallback.
|
||
escalation_pool: core-maintainers
|
||
|
||
# Pool used when no intent label matches a route below.
|
||
default_pool: core-maintainers
|
||
|
||
pools:
|
||
core-maintainers:
|
||
team: github/awesome-copilot-core-maintainers
|
||
reviewers: [] # TODO: add at least three core maintainers.
|
||
backup: [] # TODO: optional; escalation already targets this pool.
|
||
canvas:
|
||
team: github/awesome-copilot-canvas-reviewers
|
||
reviewers: [] # TODO: add at least three canvas reviewers.
|
||
backup: [] # TODO: add backup reviewers for canvas extensions.
|
||
plugin:
|
||
team: github/awesome-copilot-plugin-reviewers
|
||
reviewers: [] # TODO: add at least three plugin reviewers.
|
||
backup: [] # TODO: add backup reviewers for plugins.
|
||
content:
|
||
team: github/awesome-copilot-content-reviewers
|
||
reviewers: [] # TODO: add at least three reviewers for skills, agents, and instructions.
|
||
backup: [] # TODO: add backup content reviewers.
|
||
|
||
# Intent labels (applied by .github/workflows/label-pr-intent*.yml) mapped to
|
||
# pools. Order is priority: the first route whose label is on the PR wins.
|
||
routes:
|
||
- label: canvas-extension
|
||
pool: canvas
|
||
- label: external-plugin
|
||
pool: plugin
|
||
- label: plugin
|
||
pool: plugin
|
||
- label: skills
|
||
pool: content
|
||
- label: agent
|
||
pool: content
|
||
- label: instructions
|
||
pool: content
|
||
- label: workflow
|
||
pool: content
|
||
- label: hooks
|
||
pool: content
|
||
- label: website-update
|
||
pool: core-maintainers
|
||
|
||
# Reviewers temporarily unavailable (vacation, leave). They are never selected.
|
||
unavailable: []
|
||
|
||
# PR authors that are never routed (for example, automation accounts).
|
||
skip_authors: []
|
||
|
||
# PRs carrying any of these labels are not routed or escalated.
|
||
skip_labels: []
|