Codeowners based ownership#1512
Merged
Merged
Conversation
Nested OWNERS files are invisible in the PR sidebar and unread by the prow GitHub action, and auto-assign.yaml requests two random reviewers with no path or load awareness. Replace them with a CODEOWNERS file surfaced natively by GitHub, with review assignment and merge gating enforced by branch protection. Drop the prow lgtm-merge and remove-lgtm workflows and remove /lgtm and /approve from prow-github.yml, since approval is now GitHub-native. Record project leadership in LEADS.md and note the release-managers tag gate in the new-release template. Signed-off-by: Maroon Ayoub <maroon.ayoub@ibm.com>
GitHub-native auto-merge ignores labels, so removing prow-pr-automerge.yml left /hold (label `hold`) and the release-branch auto-hold (label `do-not-merge/hold`) with nothing to enforce them. Add a required check that fails while either label is present and re-runs on label changes. Also correct the prow-github.yml token-permission comment, which described adding reviews after /lgtm and /approve were removed. Signed-off-by: Maroon Ayoub <maroon.ayoub@ibm.com>
Single-owner carve-outs requested review from one person and never the maintainers team, with that person the only valid code-owner approver. List the team alongside the named owner on those paths so any maintainer can also satisfy code-owner review. Paths with multiple named owners stay scoped to those owners. Signed-off-by: Maroon Ayoub <maroon.ayoub@ibm.com>
vMaroon
requested review from
ahg-g,
elevran and
liu-cong
and removed request for
ahg-g and
nirrozenbaum
June 6, 2026 20:48
Contributor
There was a problem hiding this comment.
Pull request overview
This PR migrates repository ownership and merge controls from Prow + nested OWNERS files to GitHub-native mechanisms (root CODEOWNERS, required reviews/status checks, and auto-merge), with an Actions-based “hold” gate to preserve /hold behavior.
Changes:
- Add root
CODEOWNERSand leadership metadata inLEADS.md; remove nested/rootOWNERS. - Replace Prow label-driven automerge + random reviewer assignment with GitHub review assignment + auto-merge, gated by a new “hold” required check.
- Update remaining Prow chat-ops workflow to drop
/lgtmand/approve, and update release issue template guidance.
Reviewed changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| pkg/epp/framework/plugins/scheduling/scorer/prefix/OWNERS | Removed nested OWNERS (migrating ownership to CODEOWNERS). |
| pkg/epp/framework/plugins/scheduling/scorer/latency/OWNERS | Removed nested OWNERS (migrating ownership to CODEOWNERS). |
| pkg/epp/framework/plugins/scheduling/filter/sloheadroomtier/OWNERS | Removed nested OWNERS (migrating ownership to CODEOWNERS). |
| pkg/epp/framework/plugins/scheduling/filter/prefixcacheaffinity/OWNERS | Removed nested OWNERS (migrating ownership to CODEOWNERS). |
| pkg/epp/framework/plugins/requestcontrol/dataproducer/predictedlatency/OWNERS | Removed nested OWNERS (migrating ownership to CODEOWNERS). |
| pkg/epp/framework/plugins/requestcontrol/dataproducer/predictedlatency/latencypredictorclient/OWNERS | Removed nested OWNERS (migrating ownership to CODEOWNERS). |
| pkg/epp/framework/plugins/requestcontrol/admitter/latencyslo/OWNERS | Removed nested OWNERS (migrating ownership to CODEOWNERS). |
| OWNERS | Removed root OWNERS (superseded by CODEOWNERS + branch protection). |
| LEADS.md | Added leadership/roles documentation and pointers to ownership enforcement. |
| CODEOWNERS | Added GitHub-native ownership map by component/path. |
| .github/workflows/prow-pr-remove-lgtm.yml | Removed legacy Prow-based LGTM job workflow. |
| .github/workflows/prow-pr-automerge.yml | Removed legacy label-poll automerge workflow. |
| .github/workflows/prow-github.yml | Updated Prow chat-ops command set and permissions commentary. |
| .github/workflows/pr-hold-gate.yml | Added “hold” gate workflow to block merges while hold labels exist. |
| .github/workflows/auto-assign.yaml | Removed random reviewer auto-assignment workflow. |
| .github/ISSUE_TEMPLATE/new-release.md | Updated release prerequisites to mention tag protection / release-managers. |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Signed-off-by: Maroon Ayoub <Maroonay@gmail.com>
Signed-off-by: Maroon Ayoub <maroon.ayoub@ibm.com>
Signed-off-by: Maroon Ayoub <maroon.ayoub@ibm.com>
Resolve the delete/modify conflict on .github/workflows/auto-assign.yaml by keeping the deletion; the workflow is removed in this branch (llm-d#1423 only tweaked its trigger). Signed-off-by: Maroon Ayoub <maroon.ayoub@ibm.com>
shmuelk
reviewed
Jun 7, 2026
Comment on lines
+17
to
+18
| /pkg/epp/flowcontrol/ @LukeAVanDrie @shmuelk @llm-d/router-maintainers | ||
| /pkg/epp/framework/plugins/flowcontrol/ @LukeAVanDrie @shmuelk @llm-d/router-maintainers |
Contributor
There was a problem hiding this comment.
What about /pkg/epp/framework/interface/flowcontrol/ ?
The flow-control interface package shares owners with the flow-control framework and plugins. Signed-off-by: Maroon Ayoub <maroon.ayoub@ibm.com>
ahg-g
reviewed
Jun 8, 2026
| /pkg/epp/framework/plugins/scheduling/scorer/latency/ @kaushikmitr @llm-d/router-maintainers | ||
| /pkg/epp/framework/plugins/requestcontrol/admitter/latencyslo/ @kaushikmitr @llm-d/router-maintainers | ||
| /pkg/epp/framework/plugins/requestcontrol/dataproducer/predictedlatency/ @kaushikmitr @llm-d/router-maintainers | ||
|
|
Collaborator
There was a problem hiding this comment.
can we pls add @zetxqx as an owner to
https://github.com/llm-d/llm-d-router/tree/main/pkg/epp/framework/plugins/requesthandling
https://github.com/llm-d/llm-d-router/tree/main/pkg/epp/framework/interface/requesthandling
Assign @zetxqx as owner of the request-handling interface and plugins. Signed-off-by: Maroon Ayoub <maroon.ayoub@ibm.com>
Collaborator
|
/approve |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Replaces the nested OWNERS files and the prow lgtm/approve + poll-automerge flow with a single root
CODEOWNERS, GitHub-native review assignment, approval, and auto-merge, gated by branch and tag protection. Ownership becomes one visible map that GitHub surfaces in every PR's sidebar and enforces directly.Motivation: nested
OWNERSfiles are invisible in the PR UI and unread by the prow GitHub action, so sub-package owners are never pulled in by design; andauto-assign.yamlpicks two random reviewers with no path or load awareness.Changes
Added
CODEOWNERS(repo root) — flat, organized by component. The maintainers team (@llm-d/router-maintainers) is the default owner and is listed alongside each component's named owners, so a maintainer can satisfy code-owner review on any path while named owners are auto-requested for theirs.LEADS.md— chair, maintainers, release managers, emeritus..github/workflows/pr-hold-gate.yml— required check that fails while aholdordo-not-merge/holdlabel is present.Removed
OWNERSfiles.auto-assign.yaml(random-2 assignment),prow-pr-automerge.yml(10-min lgtm-label poll-merge with no CI/approver check),prow-pr-remove-lgtm.yml.Modified
prow-github.yml— drop/lgtmand/approve(no root OWNERS to gate them; GitHub-native Approve is the equivalent). All other chat-ops kept..github/ISSUE_TEMPLATE/new-release.md— note that pushingv*tags requiresrouter-release-managersmembership.New flow
mainandrelease-*(1+ approval, code-owner review, required CI, signed commits). Auto-merge replaces the prow poll-merge./hold(labelhold) and the release-branch auto-hold (labeldo-not-merge/hold) block merge through the hold-gate required check.refs/tags/v*restricts release-tag push torouter-release-managers.Required GitHub settings (apply on merge — repo/org config, not code)
router-maintainersandrouter-release-managerswith Write accessrouter-maintainers(Load balance, 2, skip busy).mainandrelease-*: require PR + 1 approval, Require review from Code Owners, required checks incl.hold, signed commits; keep the bypass list empty.v*restricted torouter-release-managers./kind cleanup