Align plugin marketplace ownership and PR review routing (#4749)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 88f4f5b8-b61a-4f5b-845f-dcc8c82ce55e
This commit is contained in:
Aaron Powell
2026-10-09 15:42:20 +11:00
committed by GitHub
co-authored by Copilot
parent 87b76d88f0
commit 04440f4f78
5 changed files with 15 additions and 3 deletions
+1 -1
View File
@@ -138,7 +138,7 @@ domains:
paths: ["extensions/**"]
pools: ["canvas"]
plugin:
paths: ["plugins/**"]
paths: ["plugins/**", ".github/plugin/**"]
pools: ["plugin"]
content:
paths: ["agents/**", "instructions/**", "skills/**", "workflows/**", "hooks/**"]
+2 -1
View File
@@ -68,7 +68,8 @@ jobs:
/^skills\//
],
plugin: [
/^plugins\//
/^plugins\//,
/^\.github\/plugin\//
],
agent: [
/^agents\/.+\.agent\.md$/
+3
View File
@@ -24,3 +24,6 @@
/website/**/cli-for-beginners/ @github/awesome-copilot-workshop-reviewers
/website/**/app-for-beginners/ @github/awesome-copilot-workshop-reviewers
/website/**/copilot-workshops/ @github/awesome-copilot-workshop-reviewers
# Specific allocations
/.github/plugin/ @github/awesome-copilot-plugin-reviewers
+2 -1
View File
@@ -11,11 +11,12 @@ The root [`CODEOWNERS`](../../CODEOWNERS) file assigns every path to a team, not
| `*` (default) | `@github/awesome-copilot-core-maintainers` |
| `/extensions/` | `@github/awesome-copilot-canvas-reviewers` |
| `/plugins/` | `@github/awesome-copilot-plugin-reviewers` |
| `/.github/plugin/` | `@github/awesome-copilot-plugin-reviewers` |
| `/agents/`, `/instructions/`, `/skills/`, `/hooks/`, `/workflows/` | `@github/awesome-copilot-content-reviewers` |
| `/.github/` (including GitHub Actions workflows), `/eng/` | `@github/awesome-copilot-core-maintainers` |
| Copilot workshop content under `/website/` | `@github/awesome-copilot-workshop-reviewers` |
GitHub applies the **last** matching rule, so the workshop entries at the bottom of the file override the default team for their paths. When you edit `CODEOWNERS` by hand:
GitHub applies the **last** matching rule, so the workshop entries and the `/.github/plugin/` entry override broader rules for their paths. When you edit `CODEOWNERS` by hand:
- Keep the `*` rule and the domain team block at the top of the file.
- Never add an individual user to the `*` rule.
+7
View File
@@ -33,6 +33,7 @@ import {
STATUS_MARKER,
summarizeChecks,
syncPullRequestStatus,
touchedDomains,
} from "./submission-gate.mjs";
const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
@@ -129,6 +130,12 @@ test("documentation and generated output are low risk", () => {
assert.equal(result.tier, "low");
});
test("generated plugin marketplace output is owned by the plugin domain", () => {
assert.deepEqual(touchedDomains([file(".github/plugin/marketplace.json")], tiers.domains), [
{ id: "plugin", pools: ["plugin"] },
]);
});
test("small modification of an existing resource is low risk", () => {
const result = classifyRisk({ files: [file("skills/foo/SKILL.md", { changes: 10 })], tiers });
assert.equal(result.tier, "low");