From 41a0b1000289fd042177aeac67ad9dbd4326c38f Mon Sep 17 00:00:00 2001 From: Peder Date: Tue, 10 Nov 2026 20:43:52 +0100 Subject: [PATCH 1/2] Set steering-committee and its child teams to triage on servers Write access on servers now comes from the teams that own or operate the repository: reference-servers-maintainers, core-maintainers, moderators and security-ig. steering-committee and the SDK, working-group and docs teams nested under it move from push to triage, matching how they are configured on modelcontextprotocol and .github. Co-Authored-By: Claude Fable 5.2 Claude-Session: https://claude.ai/code/session_01MqPQYQV9o5rePatonDBsmh --- README.md | 2 +- src/config/repoAccess.ts | 36 ++++++++++++++++++------------------ 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index d3aed82e..910611ff 100644 --- a/README.md +++ b/README.md @@ -78,7 +78,7 @@ The [contributor ladder](https://modelcontextprotocol.io/community/contributor-l Things to know when reading the config against the ladder: -- **GitHub child teams inherit their parent's repository access.** WG, IG, and SDK teams nest under `steering-committee` (via `working-groups`, `interest-groups`, and `sdk-maintainers`). Their members therefore get `steering-committee`'s grants, which include `triage` on `modelcontextprotocol` and `.github`, and `push` on `docs`, `inspector`, `quickstart-resources`, and `servers`. This is independent of ladder rank. Roles that must not inherit these grants (`members`, `maintainers`, `security-team`) have no parent. +- **GitHub child teams inherit their parent's repository access.** WG, IG, and SDK teams nest under `steering-committee` (via `working-groups`, `interest-groups`, and `sdk-maintainers`). Their members therefore get `steering-committee`'s grants, which include `triage` on `modelcontextprotocol`, `.github`, and `servers`, and `push` on `docs`, `inspector`, and `quickstart-resources`. On `servers`, write access comes from `reference-servers-maintainers`, the team that owns the repository. This is independent of ladder rank. Roles that must not inherit these grants (`members`, `maintainers`, `security-team`) have no parent. - **Some roles have no ladder counterpart.** These are functional or operational roles: `security-managers`, `security-team`, CODEOWNERS teams (`*-auth`, `conformance-auth`), collaborator teams (`registry-collaborators`, `typescript-sdk-collaborators`), `csharp-sdk-admin`, Discord-only `administrators` and `community-managers`, and Google email groups. - **Per-user grants** in `repoAccess.ts` (the `users` lists) are not tied to any ladder role. - **`security-ig` has `admin` on six repositories** (`docs`, `.github`, `inspector`, `modelcontextprotocol`, `quickstart-resources`, `servers`). This was carried over unchanged from `security-wg` in #170, and reviewing it is tracked as a separate workstream. diff --git a/src/config/repoAccess.ts b/src/config/repoAccess.ts index 53becedf..62904fef 100644 --- a/src/config/repoAccess.ts +++ b/src/config/repoAccess.ts @@ -240,28 +240,28 @@ export const REPOSITORY_ACCESS: RepositoryAccess[] = [ repository: 'servers', teams: [ { team: 'reference-servers-maintainers', permission: 'admin' }, - { team: 'auth-maintainers', permission: 'push' }, + { team: 'auth-maintainers', permission: 'triage' }, { team: 'core-maintainers', permission: 'admin' }, - { team: 'csharp-sdk', permission: 'push' }, - { team: 'docs-maintainers', permission: 'push' }, - { team: 'go-sdk', permission: 'push' }, - { team: 'java-sdk', permission: 'push' }, - { team: 'kotlin-sdk', permission: 'push' }, + { team: 'csharp-sdk', permission: 'triage' }, + { team: 'docs-maintainers', permission: 'triage' }, + { team: 'go-sdk', permission: 'triage' }, + { team: 'java-sdk', permission: 'triage' }, + { team: 'kotlin-sdk', permission: 'triage' }, { team: 'members', permission: 'triage' }, { team: 'moderators', permission: 'maintain' }, - { team: 'php-sdk', permission: 'push' }, - { team: 'python-sdk', permission: 'push' }, - { team: 'python-sdk-auth', permission: 'push' }, - { team: 'registry-wg', permission: 'push' }, - { team: 'ruby-sdk', permission: 'push' }, - { team: 'rust-sdk', permission: 'push' }, - { team: 'sdk-maintainers', permission: 'push' }, + { team: 'php-sdk', permission: 'triage' }, + { team: 'python-sdk', permission: 'triage' }, + { team: 'python-sdk-auth', permission: 'triage' }, + { team: 'registry-wg', permission: 'triage' }, + { team: 'ruby-sdk', permission: 'triage' }, + { team: 'rust-sdk', permission: 'triage' }, + { team: 'sdk-maintainers', permission: 'triage' }, { team: 'security-ig', permission: 'admin' }, - { team: 'steering-committee', permission: 'push' }, - { team: 'swift-sdk', permission: 'push' }, - { team: 'transport-wg', permission: 'push' }, - { team: 'typescript-sdk', permission: 'push' }, - { team: 'typescript-sdk-auth', permission: 'push' }, + { team: 'steering-committee', permission: 'triage' }, + { team: 'swift-sdk', permission: 'triage' }, + { team: 'transport-wg', permission: 'triage' }, + { team: 'typescript-sdk', permission: 'triage' }, + { team: 'typescript-sdk-auth', permission: 'triage' }, ], }, { From 4a645fcc6922c702701017b672f3d56d48b55abb Mon Sep 17 00:00:00 2001 From: Peder Date: Tue, 10 Nov 2026 21:06:31 +0100 Subject: [PATCH 2/2] Apply the same triage baseline to inspector and quickstart-resources steering-committee and its child teams move from push to triage on inspector and quickstart-resources as well. inspector-maintainers keeps admin on inspector, and docs-maintainers keeps push on quickstart-resources, where its members do most of the merging. Co-Authored-By: Claude Fable 5.2 Claude-Session: https://claude.ai/code/session_01MqPQYQV9o5rePatonDBsmh --- README.md | 2 +- src/config/repoAccess.ts | 74 ++++++++++++++++++++-------------------- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index 910611ff..dc81c290 100644 --- a/README.md +++ b/README.md @@ -78,7 +78,7 @@ The [contributor ladder](https://modelcontextprotocol.io/community/contributor-l Things to know when reading the config against the ladder: -- **GitHub child teams inherit their parent's repository access.** WG, IG, and SDK teams nest under `steering-committee` (via `working-groups`, `interest-groups`, and `sdk-maintainers`). Their members therefore get `steering-committee`'s grants, which include `triage` on `modelcontextprotocol`, `.github`, and `servers`, and `push` on `docs`, `inspector`, and `quickstart-resources`. On `servers`, write access comes from `reference-servers-maintainers`, the team that owns the repository. This is independent of ladder rank. Roles that must not inherit these grants (`members`, `maintainers`, `security-team`) have no parent. +- **GitHub child teams inherit their parent's repository access.** WG, IG, and SDK teams nest under `steering-committee` (via `working-groups`, `interest-groups`, and `sdk-maintainers`). Their members therefore get `steering-committee`'s grants, which include `triage` on `modelcontextprotocol`, `.github`, `inspector`, `quickstart-resources`, and `servers`, and `push` on the archived `docs` repository. Write access on those repositories comes from the team that owns each one: `inspector-maintainers` on `inspector`, `reference-servers-maintainers` on `servers`, and `docs-maintainers` on `quickstart-resources`. This is independent of ladder rank. Roles that must not inherit these grants (`members`, `maintainers`, `security-team`) have no parent. - **Some roles have no ladder counterpart.** These are functional or operational roles: `security-managers`, `security-team`, CODEOWNERS teams (`*-auth`, `conformance-auth`), collaborator teams (`registry-collaborators`, `typescript-sdk-collaborators`), `csharp-sdk-admin`, Discord-only `administrators` and `community-managers`, and Google email groups. - **Per-user grants** in `repoAccess.ts` (the `users` lists) are not tied to any ladder role. - **`security-ig` has `admin` on six repositories** (`docs`, `.github`, `inspector`, `modelcontextprotocol`, `quickstart-resources`, `servers`). This was carried over unchanged from `security-wg` in #170, and reviewing it is tracked as a separate workstream. diff --git a/src/config/repoAccess.ts b/src/config/repoAccess.ts index 62904fef..49ae600c 100644 --- a/src/config/repoAccess.ts +++ b/src/config/repoAccess.ts @@ -147,27 +147,27 @@ export const REPOSITORY_ACCESS: RepositoryAccess[] = [ repository: 'inspector', teams: [ { team: 'inspector-maintainers', permission: 'admin' }, - { team: 'auth-maintainers', permission: 'push' }, + { team: 'auth-maintainers', permission: 'triage' }, { team: 'core-maintainers', permission: 'maintain' }, - { team: 'csharp-sdk', permission: 'push' }, - { team: 'go-sdk', permission: 'push' }, - { team: 'java-sdk', permission: 'push' }, - { team: 'kotlin-sdk', permission: 'push' }, + { team: 'csharp-sdk', permission: 'triage' }, + { team: 'go-sdk', permission: 'triage' }, + { team: 'java-sdk', permission: 'triage' }, + { team: 'kotlin-sdk', permission: 'triage' }, { team: 'members', permission: 'triage' }, { team: 'moderators', permission: 'maintain' }, - { team: 'php-sdk', permission: 'push' }, - { team: 'python-sdk', permission: 'push' }, - { team: 'python-sdk-auth', permission: 'push' }, - { team: 'registry-wg', permission: 'push' }, - { team: 'ruby-sdk', permission: 'push' }, - { team: 'rust-sdk', permission: 'push' }, - { team: 'sdk-maintainers', permission: 'push' }, + { team: 'php-sdk', permission: 'triage' }, + { team: 'python-sdk', permission: 'triage' }, + { team: 'python-sdk-auth', permission: 'triage' }, + { team: 'registry-wg', permission: 'triage' }, + { team: 'ruby-sdk', permission: 'triage' }, + { team: 'rust-sdk', permission: 'triage' }, + { team: 'sdk-maintainers', permission: 'triage' }, { team: 'security-ig', permission: 'admin' }, - { team: 'steering-committee', permission: 'push' }, - { team: 'swift-sdk', permission: 'push' }, - { team: 'transport-wg', permission: 'push' }, - { team: 'typescript-sdk', permission: 'push' }, - { team: 'typescript-sdk-auth', permission: 'push' }, + { team: 'steering-committee', permission: 'triage' }, + { team: 'swift-sdk', permission: 'triage' }, + { team: 'transport-wg', permission: 'triage' }, + { team: 'typescript-sdk', permission: 'triage' }, + { team: 'typescript-sdk-auth', permission: 'triage' }, ], }, { @@ -209,31 +209,31 @@ export const REPOSITORY_ACCESS: RepositoryAccess[] = [ { repository: 'quickstart-resources', teams: [ - { team: 'auth-maintainers', permission: 'push' }, + { team: 'auth-maintainers', permission: 'triage' }, { team: 'core-maintainers', permission: 'maintain' }, - { team: 'csharp-sdk', permission: 'push' }, + { team: 'csharp-sdk', permission: 'triage' }, { team: 'docs-maintainers', permission: 'push' }, - { team: 'go-sdk', permission: 'push' }, - { team: 'ig-financial-services', permission: 'push' }, - { team: 'interest-groups', permission: 'push' }, - { team: 'java-sdk', permission: 'push' }, - { team: 'kotlin-sdk', permission: 'push' }, + { team: 'go-sdk', permission: 'triage' }, + { team: 'ig-financial-services', permission: 'triage' }, + { team: 'interest-groups', permission: 'triage' }, + { team: 'java-sdk', permission: 'triage' }, + { team: 'kotlin-sdk', permission: 'triage' }, { team: 'members', permission: 'triage' }, { team: 'moderators', permission: 'maintain' }, - { team: 'php-sdk', permission: 'push' }, - { team: 'python-sdk', permission: 'push' }, - { team: 'python-sdk-auth', permission: 'push' }, - { team: 'registry-wg', permission: 'push' }, - { team: 'ruby-sdk', permission: 'push' }, - { team: 'rust-sdk', permission: 'push' }, - { team: 'sdk-maintainers', permission: 'push' }, + { team: 'php-sdk', permission: 'triage' }, + { team: 'python-sdk', permission: 'triage' }, + { team: 'python-sdk-auth', permission: 'triage' }, + { team: 'registry-wg', permission: 'triage' }, + { team: 'ruby-sdk', permission: 'triage' }, + { team: 'rust-sdk', permission: 'triage' }, + { team: 'sdk-maintainers', permission: 'triage' }, { team: 'security-ig', permission: 'admin' }, - { team: 'steering-committee', permission: 'push' }, - { team: 'swift-sdk', permission: 'push' }, - { team: 'transport-wg', permission: 'push' }, - { team: 'typescript-sdk', permission: 'push' }, - { team: 'typescript-sdk-auth', permission: 'push' }, - { team: 'working-groups', permission: 'push' }, + { team: 'steering-committee', permission: 'triage' }, + { team: 'swift-sdk', permission: 'triage' }, + { team: 'transport-wg', permission: 'triage' }, + { team: 'typescript-sdk', permission: 'triage' }, + { team: 'typescript-sdk-auth', permission: 'triage' }, + { team: 'working-groups', permission: 'triage' }, ], }, {