Migrate GitHub teams to infrastructure-as-code (#5)
* Migrate GitHub teams to infrastructure-as-code - Add 25 teams with proper hierarchy (steering-committee, SDK teams, working groups, interest groups) - Add 67 team members with their assignments - Add repository access configuration for all 21 repositories - Refactor github.ts to use config-driven approach with repoAccess.ts - Mark all MCP teams as GitHub-only with onlyOnPlatforms - Use RepositoryCollaborators for authoritative access management Note: GitHub Projects V2 permissions are not yet supported by Pulumi and must be managed manually. See https://github.com/pulumi/pulumi-github/issues/1006 * Add individual user collaborators to repository access Preserves direct collaborator access for users who have explicit permissions outside of team membership, including: - jspahrsummers: admin on multiple core repos - Go SDK collaborators (neild, rsc, rolandshoemaker, h9jiang) - C# SDK collaborators (jeffhandley, MackinnonBuck, jozkee, localden, PederHP) - Rust SDK collaborators (jamadeo, jokemanfire, 4t145) - Inspector collaborators (richardkmichael, olaservo, an-dustin, ashwin-ant) - Financial services IG collaborators (aniabot, imfing, sambhav, KengoA, nitsanh) - And others Without this, RepositoryCollaborators (authoritative mode) would remove all individual user access.
This commit is contained in:
parent
5b2b01db21
commit
7883dbc5e3
1 changed files with 772 additions and 10 deletions
|
|
@ -9,20 +9,163 @@ import { defineGroups } from './utils';
|
|||
// Groups are created on all platforms (GitHub and Google) by default.
|
||||
// To limit a group to specific platforms, set the onlyOnPlatforms array (e.g., onlyOnPlatforms: ['google']).
|
||||
export const GROUPS = defineGroups([
|
||||
// MCP Organization Structure
|
||||
{
|
||||
name: 'test-parent',
|
||||
description: 'All maintainers. Users should not be added directly to this group.',
|
||||
name: 'steering-committee',
|
||||
description: 'MCP Steering Committee',
|
||||
onlyOnPlatforms: ['github'],
|
||||
},
|
||||
{
|
||||
name: 'test-child',
|
||||
description: 'Registry maintainers',
|
||||
memberOf: ['test-parent'],
|
||||
name: 'core',
|
||||
description: 'Core team',
|
||||
memberOf: ['steering-committee'],
|
||||
onlyOnPlatforms: ['github'],
|
||||
},
|
||||
{
|
||||
name: 'test-email-group',
|
||||
description: 'Example email group that accepts external emails',
|
||||
isEmailGroup: true,
|
||||
name: 'core-maintainers',
|
||||
description: 'Core maintainers',
|
||||
memberOf: ['steering-committee'],
|
||||
onlyOnPlatforms: ['github'],
|
||||
},
|
||||
{
|
||||
name: 'moderators',
|
||||
description: 'Community moderators',
|
||||
memberOf: ['steering-committee'],
|
||||
onlyOnPlatforms: ['github'],
|
||||
},
|
||||
{
|
||||
name: 'docs-maintaners',
|
||||
description: 'MCP docs maintainers',
|
||||
memberOf: ['steering-committee'],
|
||||
onlyOnPlatforms: ['github'],
|
||||
},
|
||||
|
||||
// SDK Maintainers
|
||||
{
|
||||
name: 'sdk-maintainers',
|
||||
description: 'Authors and maintainers of official MCP SDKs',
|
||||
memberOf: ['steering-committee'],
|
||||
onlyOnPlatforms: ['github'],
|
||||
},
|
||||
{
|
||||
name: 'csharp-sdk',
|
||||
description: 'Official C# SDK maintainers',
|
||||
memberOf: ['sdk-maintainers'],
|
||||
onlyOnPlatforms: ['github'],
|
||||
},
|
||||
{
|
||||
name: 'go-sdk',
|
||||
description: 'The Go SDK Team',
|
||||
memberOf: ['sdk-maintainers'],
|
||||
onlyOnPlatforms: ['github'],
|
||||
},
|
||||
{
|
||||
name: 'java-sdk',
|
||||
description: 'Official Java SDK maintainers',
|
||||
memberOf: ['sdk-maintainers'],
|
||||
onlyOnPlatforms: ['github'],
|
||||
},
|
||||
{
|
||||
name: 'kotlin-sdk',
|
||||
description: 'Official Kotlin SDK maintainers',
|
||||
memberOf: ['sdk-maintainers'],
|
||||
onlyOnPlatforms: ['github'],
|
||||
},
|
||||
{
|
||||
name: 'php-sdk',
|
||||
description: 'Official PHP SDK maintainers',
|
||||
memberOf: ['sdk-maintainers'],
|
||||
onlyOnPlatforms: ['github'],
|
||||
},
|
||||
{
|
||||
name: 'python-sdk',
|
||||
description: 'Official Python SDK maintainers',
|
||||
memberOf: ['sdk-maintainers'],
|
||||
onlyOnPlatforms: ['github'],
|
||||
},
|
||||
{
|
||||
name: 'python-sdk-auth',
|
||||
description: 'Auth related owners',
|
||||
memberOf: ['python-sdk'],
|
||||
onlyOnPlatforms: ['github'],
|
||||
},
|
||||
{
|
||||
name: 'ruby-sdk',
|
||||
description: 'Official Ruby SDK maintainers',
|
||||
memberOf: ['sdk-maintainers'],
|
||||
onlyOnPlatforms: ['github'],
|
||||
},
|
||||
{
|
||||
name: 'rust-sdk',
|
||||
description: 'Official Rust SDK maintainers',
|
||||
memberOf: ['sdk-maintainers'],
|
||||
onlyOnPlatforms: ['github'],
|
||||
},
|
||||
{
|
||||
name: 'swift-sdk',
|
||||
description: 'Official Swift SDK maintainers',
|
||||
memberOf: ['sdk-maintainers'],
|
||||
onlyOnPlatforms: ['github'],
|
||||
},
|
||||
{
|
||||
name: 'typescript-sdk',
|
||||
description: 'Official TypeScript SDK',
|
||||
memberOf: ['sdk-maintainers'],
|
||||
onlyOnPlatforms: ['github'],
|
||||
},
|
||||
{
|
||||
name: 'typescript-sdk-auth',
|
||||
description: 'Code owners for auth in Typescript SDK',
|
||||
memberOf: ['typescript-sdk'],
|
||||
onlyOnPlatforms: ['github'],
|
||||
},
|
||||
|
||||
// Working Groups
|
||||
{
|
||||
name: 'working-groups',
|
||||
description: 'MCP Working Groups',
|
||||
memberOf: ['steering-committee'],
|
||||
onlyOnPlatforms: ['github'],
|
||||
},
|
||||
{
|
||||
name: 'auth-wg',
|
||||
description: 'Authentication Working Group',
|
||||
memberOf: ['working-groups'],
|
||||
onlyOnPlatforms: ['github'],
|
||||
},
|
||||
{
|
||||
name: 'registry-wg',
|
||||
description: 'Official registry builders and maintainers',
|
||||
memberOf: ['working-groups'],
|
||||
},
|
||||
{
|
||||
name: 'security-wg',
|
||||
description: 'Security Working Group',
|
||||
memberOf: ['working-groups'],
|
||||
onlyOnPlatforms: ['github'],
|
||||
},
|
||||
{
|
||||
name: 'transport-wg',
|
||||
description: 'Transport Working Group',
|
||||
memberOf: ['working-groups'],
|
||||
onlyOnPlatforms: ['github'],
|
||||
},
|
||||
|
||||
// Interest Groups
|
||||
{
|
||||
name: 'interest-groups',
|
||||
description: 'Interest Groups',
|
||||
memberOf: ['steering-committee'],
|
||||
onlyOnPlatforms: ['github'],
|
||||
},
|
||||
{
|
||||
name: 'ig-financial-services',
|
||||
description: 'Financial Services Interest Group',
|
||||
memberOf: ['interest-groups'],
|
||||
onlyOnPlatforms: ['github'],
|
||||
},
|
||||
|
||||
// Email-only groups
|
||||
{
|
||||
name: 'antitrust',
|
||||
description: 'Antitrust compliance contacts',
|
||||
|
|
|
|||
Loading…
Reference in a new issue