Model the maintainers group as a GitHub team with write on spec and read on maintainer-docs (#146)

* Grant maintainers team read access to maintainer-docs

Adds a GitHub team for the existing 'maintainers' role (previously
Discord/Google only, with no parent team so it does not inherit
steering-committee repo permissions) and grants it pull access to the
maintainer-docs repository.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LRucdTmghybeWkeaTtVuS1

* Grant maintainers team write access to the spec repo

Complete the maintainers group model: the parentless maintainers GitHub
team (added in this PR alongside its existing Discord role and Google
group) now gets push on modelcontextprotocol/modelcontextprotocol in
addition to pull on maintainer-docs. Branch protection on the spec repo
still requires changes to land via pull requests.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V6sAnrWknVzWzfuuzomMXk

---------

Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
claude[bot] 2026-09-04 00:26:10 -07:00 • committed by GitHub
commit 41dfface78
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 4 additions and 0 deletions

View file

@ -115,6 +115,7 @@ export const REPOSITORY_ACCESS: RepositoryAccess[] = [
{ team: 'interest-groups', permission: 'triage' },
{ team: 'java-sdk', permission: 'triage' },
{ team: 'kotlin-sdk', permission: 'triage' },
{ team: 'maintainers', permission: 'push' },
{ team: 'moderators', permission: 'maintain' },
{ team: 'php-sdk', permission: 'triage' },
{ team: 'python-sdk', permission: 'triage' },
@ -384,6 +385,7 @@ export const REPOSITORY_ACCESS: RepositoryAccess[] = [
{ team: 'lead-maintainers', permission: 'maintain' },
{ team: 'core-maintainers', permission: 'admin' },
{ team: 'steering-committee', permission: 'maintain' },
{ team: 'maintainers', permission: 'pull' },
],
users: [{ username: 'sambhav', permission: 'admin' }],
},

View file

@ -123,6 +123,8 @@ export const ROLES: readonly Role[] = [
{
id: ROLE_IDS.MAINTAINERS,
description: 'General maintainers',
// No parent team: must not inherit steering-committee repo permissions
github: { team: 'maintainers' },
discord: { role: 'maintainers (synced)' },
// GWS user accounts are opt-in: maintainers add firstName/lastName/googleEmailPrefix
// to their entry in users.ts via PR to get an @modelcontextprotocol.io account