Add Discord role inheritance via parent traversal and discordImplies

- Add discordImplies field to Role interface for Discord-specific role hierarchy
- Add expandDiscordRoles() function to traverse both GitHub parent chain
  and discordImplies relationships when syncing Discord roles
- SDK_MAINTAINERS now implies MAINTAINERS for Discord

This ensures that users with SDK roles (GO_SDK, PYTHON_SDK, etc.) automatically
get the 'maintainers (synced)' Discord role through:
  GO_SDK -> SDK_MAINTAINERS (via GitHub parent) -> MAINTAINERS (via discordImplies)

Claude-Generated-By: Claude Code (cli/claude-opus-4-5=100%)
Claude-Steers: 5
Claude-Permission-Prompts: 1
Claude-Escapes: 0
This commit is contained in:
David Soria Parra 2026-01-15 14:16:06 +00:00
commit a667c4306a
No known key found for this signature in database

View file

@ -38,6 +38,12 @@ export interface Role {
github?: GitHubConfig;
discord?: DiscordConfig;
google?: GoogleConfig;
/**
* Roles that are implied for Discord membership.
* If a user has this role, they automatically get the implied roles' Discord roles too.
* This is separate from GitHub parent relationships and allows Discord-specific hierarchy.
*/
discordImplies?: readonly RoleId[];
}
/**
@ -135,6 +141,7 @@ export const ROLES: readonly Role[] = [
description: 'Authors and maintainers of official MCP SDKs',
github: { team: 'sdk-maintainers', parent: ROLE_IDS.STEERING_COMMITTEE },
discord: { role: 'sdk maintainers (synced)' },
discordImplies: [ROLE_IDS.MAINTAINERS], // SDK maintainers are also general maintainers
},
{
id: ROLE_IDS.CSHARP_SDK,