Skip to content

Ignore org-role teams in RepositoryCollaborators to stop per-deploy churn - #179

Merged
localden merged 1 commit into
mainfrom
claude/ignore-org-role-teams
Sep 13, 2026
Merged

Ignore org-role teams in RepositoryCollaborators to stop per-deploy churn#179
localden merged 1 commit into
mainfrom
claude/ignore-org-role-teams

Conversation

@claude

@claude claude Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Requested by Den Delimarsky · Slack thread

Before: Every deploy on main spends ~5 minutes rewriting resources that have not changed. GitHub's list-repository-teams API also returns teams whose access comes from an organization role, so the pulumi up --refresh step reads the org-role teams from orgRoles.ts (lead-maintainers and core-maintainers hold all_repo_admin, security-managers holds security_manager) as direct collaborators on repositories that never granted them in repoAccess.ts, and then rewrites ~45 RepositoryCollaborators resources on every run to remove them again (e.g. run #265, "~45 updated"). On 2026-09-07 this surfaced as a hard failure: run #253 404'd because the phantom lead-maintainers DELETE targeted experimental-ext-skills, a repository that had since been renamed to ext-skills on GitHub. That rename was fixed separately in e9e9f1b (config rename plus a temporary pulumi state delete of the stale resource), and deploys have been green since run #257; the per-deploy churn remains.

After: The provider skips lead-maintainers, core-maintainers, and security-managers on repositories that do not explicitly grant them, so each deploy's refresh no longer sees phantom drift and stops rewriting those ~45 resources. Repositories whose repoAccess.ts entry grants an org-role team directly (e.g. lead-maintainers and core-maintainers on maintainer-docs) keep those grants fully managed by Pulumi, unchanged. A future repository rename can no longer trip the same 404, because there is no phantom association left to delete.

This is a workaround to remove once a @pulumi/github release includes the upstream fix integrations/terraform-provider-github#3571 (as of v6.15.0 the pinned upstream commit predates it).

How: src/github.ts derives the org-role team list from ORG_ROLE_ASSIGNMENTS (so it cannot drift from orgRoles.ts) and, for each repository, computes ignoreTeams as that list minus the teams the repo's config entry explicitly grants, referencing each team's slug output. No grants change; the only diff to each resource is the added ignoreTeams input.

The branch is conflict-free against main and CI is green.

🤖 Generated with Claude Code

https://claude.ai/code/session_01H4JKj5FVkmj6bRzgh1GPrY

@claude
claude Bot requested a review from a team as a code owner September 7, 2026 07:44
@claude
claude Bot deployed to production September 7, 2026 07:44 Active
@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown

Pulumi Preview

Click to expand preview output
Previewing update (prod):
  pulumi:pulumi:Stack: (same)
    [urn=urn:pulumi:prod::mcp-access::pulumi:pulumi:Stack::mcp-access-prod]
    ~ googleworkspace:index/orgUnit:OrgUnit: (update)
        [id=id:03ph8a2z0nc6rsr]
        [urn=urn:pulumi:prod::mcp-access::googleworkspace:index/orgUnit:OrgUnit::mcp-org-unit]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:googleworkspace::default_0_11_2::2a78e29b-bbb9-425e-a8de-1a161a6a7d9f]
        description      : "Model Context Protocol"
        name             : "Model Context Protocol"
        parentOrgUnitPath: "/"
    ~ googleworkspace:index/groupSettings:GroupSettings: (update)
        [id=catch-all@modelcontextprotocol.io]
        [urn=urn:pulumi:prod::mcp-access::googleworkspace:index/groupSettings:GroupSettings::catch-all]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:googleworkspace::default_0_11_2::2a78e29b-bbb9-425e-a8de-1a161a6a7d9f]
        allowExternalMembers : true
        email                : "catch-all@modelcontextprotocol.io"
        whoCanContactOwner   : "ALL_OWNERS_CAN_CONTACT"
        whoCanJoin           : "INVITED_CAN_JOIN"
        whoCanLeaveGroup     : "NONE_CAN_LEAVE"
        whoCanModerateMembers: "NONE"
        whoCanPostMessage    : "ANYONE_CAN_POST"
        whoCanViewGroup      : "ALL_MEMBERS_CAN_VIEW"
        whoCanViewMembership : "ALL_IN_DOMAIN_CAN_VIEW"
    ~ googleworkspace:index/groupSettings:GroupSettings: (update)
        [id=antitrust@modelcontextprotocol.io]
        [urn=urn:pulumi:prod::mcp-access::googleworkspace:index/groupSettings:GroupSettings::antitrust]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:googleworkspace::default_0_11_2::2a78e29b-bbb9-425e-a8de-1a161a6a7d9f]
        allowExternalMembers : true
        email                : "antitrust@modelcontextprotocol.io"
        whoCanContactOwner   : "ALL_OWNERS_CAN_CONTACT"
        whoCanJoin           : "INVITED_CAN_JOIN"
        whoCanLeaveGroup     : "NONE_CAN_LEAVE"
        whoCanModerateMembers: "NONE"
        whoCanPostMessage    : "ANYONE_CAN_POST"
        whoCanViewGroup      : "ALL_MEMBERS_CAN_VIEW"
        whoCanViewMembership : "ALL_IN_DOMAIN_CAN_VIEW"
    ~ googleworkspace:index/groupSettings:GroupSettings: (update)
        [id=lead-maintainers@modelcontextprotocol.io]
        [urn=urn:pulumi:prod::mcp-access::googleworkspace:index/groupSettings:GroupSettings::lead-maintainers]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:googleworkspace::default_0_11_2::2a78e29b-bbb9-425e-a8de-1a161a6a7d9f]
        allowExternalMembers : false
        email                : "lead-maintainers@modelcontextprotocol.io"
        whoCanContactOwner   : "ALL_OWNERS_CAN_CONTACT"
        whoCanJoin           : "INVITED_CAN_JOIN"
        whoCanLeaveGroup     : "NONE_CAN_LEAVE"
        whoCanModerateMembers: "NONE"
        whoCanPostMessage    : "ALL_OWNERS_CAN_POST"
        whoCanViewGroup      : "ALL_OWNERS_CAN_VIEW"
        whoCanViewMembership : "ALL_IN_DOMAIN_CAN_VIEW"
    ~ googleworkspace:index/groupSettings:GroupSettings: (update)
        [id=maintainers@modelcontextprotocol.io]
        [urn=urn:pulumi:prod::mcp-access::googleworkspace:index/groupSettings:GroupSettings::maintainers]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:googleworkspace::default_0_11_2::2a78e29b-bbb9-425e-a8de-1a161a6a7d9f]
        allowExternalMembers : true
        email                : "maintainers@modelcontextprotocol.io"
        whoCanContactOwner   : "ALL_OWNERS_CAN_CONTACT"
        whoCanJoin           : "INVITED_CAN_JOIN"
        whoCanLeaveGroup     : "NONE_CAN_LEAVE"
        whoCanModerateMembers: "NONE"
        whoCanPostMessage    : "ALL_OWNERS_CAN_POST"
        whoCanViewGroup      : "ALL_OWNERS_CAN_VIEW"
        whoCanViewMembership : "ALL_IN_DOMAIN_CAN_VIEW"
    ~ googleworkspace:index/groupSettings:GroupSettings: (update)
        [id=core-maintainers@modelcontextprotocol.io]
        [urn=urn:pulumi:prod::mcp-access::googleworkspace:index/groupSettings:GroupSettings::core-maintainers]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:googleworkspace::default_0_11_2::2a78e29b-bbb9-425e-a8de-1a161a6a7d9f]
        allowExternalMembers : false
        email                : "core-maintainers@modelcontextprotocol.io"
        whoCanContactOwner   : "ALL_OWNERS_CAN_CONTACT"
        whoCanJoin           : "INVITED_CAN_JOIN"
        whoCanLeaveGroup     : "NONE_CAN_LEAVE"
        whoCanModerateMembers: "NONE"
        whoCanPostMessage    : "ALL_OWNERS_CAN_POST"
        whoCanViewGroup      : "ALL_OWNERS_CAN_VIEW"
        whoCanViewMembership : "ALL_IN_DOMAIN_CAN_VIEW"
    ~ googleworkspace:index/groupSettings:GroupSettings: (update)
        [id=moderators@modelcontextprotocol.io]
        [urn=urn:pulumi:prod::mcp-access::googleworkspace:index/groupSettings:GroupSettings::moderators]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:googleworkspace::default_0_11_2::2a78e29b-bbb9-425e-a8de-1a161a6a7d9f]
        allowExternalMembers : false
        email                : "moderators@modelcontextprotocol.io"
        whoCanContactOwner   : "ALL_OWNERS_CAN_CONTACT"
        whoCanJoin           : "INVITED_CAN_JOIN"
        whoCanLeaveGroup     : "NONE_CAN_LEAVE"
        whoCanModerateMembers: "NONE"
        whoCanPostMessage    : "ALL_OWNERS_CAN_POST"
        whoCanViewGroup      : "ALL_OWNERS_CAN_VIEW"
        whoCanViewMembership : "ALL_IN_DOMAIN_CAN_VIEW"
    ~ googleworkspace:index/groupSettings:GroupSettings: (update)
        [id=registry-wg@modelcontextprotocol.io]
        [urn=urn:pulumi:prod::mcp-access::googleworkspace:index/groupSettings:GroupSettings::registry-wg]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:googleworkspace::default_0_11_2::2a78e29b-bbb9-425e-a8de-1a161a6a7d9f]
        allowExternalMembers : true
        email                : "registry-wg@modelcontextprotocol.io"
        whoCanContactOwner   : "ALL_OWNERS_CAN_CONTACT"
        whoCanJoin           : "INVITED_CAN_JOIN"
        whoCanLeaveGroup     : "NONE_CAN_LEAVE"
        whoCanModerateMembers: "NONE"
        whoCanPostMessage    : "ALL_OWNERS_CAN_POST"
        whoCanViewGroup      : "ALL_OWNERS_CAN_VIEW"
        whoCanViewMembership : "ALL_IN_DOMAIN_CAN_VIEW"
    ~ googleworkspace:index/groupSettings:GroupSettings: (update)
        [id=appeals@modelcontextprotocol.io]
        [urn=urn:pulumi:prod::mcp-access::googleworkspace:index/groupSettings:GroupSettings::appeals]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:googleworkspace::default_0_11_2::2a78e29b-bbb9-425e-a8de-1a161a6a7d9f]
        allowExternalMembers : false
        email                : "appeals@modelcontextprotocol.io"
        whoCanContactOwner   : "ALL_OWNERS_CAN_CONTACT"
        whoCanJoin           : "INVITED_CAN_JOIN"
        whoCanLeaveGroup     : "NONE_CAN_LEAVE"
        whoCanModerateMembers: "NONE"
        whoCanPostMessage    : "ANYONE_CAN_POST"
        whoCanViewGroup      : "ALL_MEMBERS_CAN_VIEW"
        whoCanViewMembership : "ALL_IN_DOMAIN_CAN_VIEW"
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=community-moderators]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-community-moderators]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=use-mcp]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-use-mcp]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=example-remote-client]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-example-remote-client]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=maintainer-docs]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-maintainer-docs]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=conformance]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-conformance]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "core-maintainers"
            }
      +     [2]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=access]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-access]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "core-maintainers"
            }
      +     [2]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=java-sdk]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-java-sdk]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "core-maintainers"
            }
      +     [2]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=go-sdk]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-go-sdk]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "core-maintainers"
            }
      +     [2]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=kotlin-sdk]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-kotlin-sdk]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "core-maintainers"
            }
      +     [2]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=ruby-sdk]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-ruby-sdk]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "core-maintainers"
            }
      +     [2]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=php-sdk]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-php-sdk]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "core-maintainers"
            }
      +     [2]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=rust-sdk]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-rust-sdk]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "core-maintainers"
            }
      +     [2]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=swift-sdk]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-swift-sdk]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "core-maintainers"
            }
      +     [2]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=financial-services-interest-group]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-financial-services-interest-group]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "core-maintainers"
            }
      +     [2]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=experimental-ext-grouping]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-experimental-ext-grouping]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=experimental-ext-tool-annotations]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-experimental-ext-tool-annotations]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=static]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-static]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "core-maintainers"
            }
      +     [2]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=ext-auth]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-ext-auth]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "core-maintainers"
            }
      +     [2]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=experimental-ext-triggers-events]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-experimental-ext-triggers-events]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=example-remote-server]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-example-remote-server]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=ext-apps]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-ext-apps]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=experimental-ext-interceptors]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-experimental-ext-interceptors]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=ext-skills]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-ext-skills]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=ext-tasks]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-ext-tasks]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=csharp-sdk]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-csharp-sdk]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "core-maintainers"
            }
      +     [2]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=create-python-server]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-create-python-server]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "core-maintainers"
            }
      +     [2]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=python-sdk]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-python-sdk]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "core-maintainers"
            }
      +     [2]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=modelcontextprotocol]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-modelcontextprotocol]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=.github]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-.github]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=inspector]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-inspector]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=typescript-sdk]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-typescript-sdk]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "core-maintainers"
            }
      +     [2]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=quickstart-resources]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-quickstart-resources]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=create-typescript-server]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-create-typescript-server]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "core-maintainers"
            }
      +     [2]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=docs]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-docs]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=servers]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-servers]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "security-managers"
            }
        ]
    ~ github:index/repositoryCollaborators:RepositoryCollaborators: (update)
        [id=registry]
        [urn=urn:pulumi:prod::mcp-access::github:index/repositoryCollaborators:RepositoryCollaborators::repo-registry]
        [provider=urn:pulumi:prod::mcp-access::pulumi:providers:github::default_6_12_1::9dc4cfd7-8c80-477f-9406-ba2b0eddff00]
      + ignoreTeams: [
      +     [0]: {
              + teamId    : "lead-maintainers"
            }
      +     [1]: {
              + teamId    : "core-maintainers"
            }
      +     [2]: {
              + teamId    : "security-managers"
            }
        ]
    --outputs:--
  ~ discordRoles       : {
      ~ administrators (synced)                                 : {
            guildId : "1358869848138059966"
            id      : "1460760673498959945"
            roleId  : "1460760673498959945"
            roleName: "administrators (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-administrators"
        }
      ~ agents working group (synced)                           : {
            guildId : "1358869848138059966"
            id      : "1539652800403996692"
            roleId  : "1539652800403996692"
            roleName: "agents working group (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-agents-wg"
        }
      ~ auth fine-grained authorization working group (synced)  : {
            guildId : "1358869848138059966"
            id      : "1539652788047577128"
            roleId  : "1539652788047577128"
            roleName: "auth fine-grained authorization working group (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-auth-wg-fine-grained-authz"
        }
      ~ auth interest group (synced)                            : {
            guildId : "1358869848138059966"
            id      : "1460760779107209370"
            roleId  : "1460760779107209370"
            roleName: "auth interest group (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-auth-ig"
        }
      ~ auth tool scopes working group (synced)                 : {
            guildId : "1358869848138059966"
            id      : "1539652784092090369"
            roleId  : "1539652784092090369"
            roleName: "auth tool scopes working group (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-auth-wg-tool-scopes"
        }
      ~ c# sdk maintainers (synced)                             : {
            guildId : "1358869848138059966"
            id      : "1460760658848252036"
            roleId  : "1460760658848252036"
            roleName: "c# sdk maintainers (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-csharp-sdk"
        }
      ~ client implementor interest group (synced)              : {
            guildId : "1358869848138059966"
            id      : "1460760806584094783"
            roleId  : "1460760806584094783"
            roleName: "client implementor interest group (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-client-implementor-ig"
        }
      ~ community managers (synced)                             : {
            guildId : "1358869848138059966"
            id      : "1461488567162503189"
            roleId  : "1461488567162503189"
            roleName: "community managers (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-community-managers"
        }
      ~ community moderators (synced)                           : {
            guildId : "1358869848138059966"
            id      : "1460760656226680903"
            roleId  : "1460760656226680903"
            roleName: "community moderators (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-moderators"
        }
      ~ core maintainers (synced)                               : {
            guildId : "1358869848138059966"
            id      : "1460760682076307516"
            roleId  : "1460760682076307516"
            roleName: "core maintainers (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-core-maintainers"
        }
      ~ core primitive working group (synced)                   : {
            guildId : "1358869848138059966"
            id      : "1540128486218539018"
            roleId  : "1540128486218539018"
            roleName: "core primitive working group (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-core-primitive-wg"
        }
      ~ enterprise-managed authorization interest group (synced): {
            guildId : "1358869848138059966"
            id      : "1539652812743381082"
            roleId  : "1539652812743381082"
            roleName: "enterprise-managed authorization interest group (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-enterprise-managed-authorization-ig"
        }
      ~ file uploads working group (synced)                     : {
            guildId : "1358869848138059966"
            id      : "1497125934359249018"
            roleId  : "1497125934359249018"
            roleName: "file uploads working group (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-file-uploads-wg"
        }
      ~ filesystems working group (synced)                      : {
            guildId : "1358869848138059966"
            id      : "1547367326343630958"
            roleId  : "1547367326343630958"
            roleName: "filesystems working group (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-filesystems-wg"
        }
      ~ financial services interest group (synced)              : {
            guildId : "1358869848138059966"
            id      : "1460760782605123726"
            roleId  : "1460760782605123726"
            roleName: "financial services interest group (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-financial-services-ig"
        }
      ~ gateways interest group (synced)                        : {
            guildId : "1358869848138059966"
            id      : "1461148028646854859"
            roleId  : "1461148028646854859"
            roleName: "gateways interest group (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-gateways-ig"
        }
      ~ go sdk maintainers (synced)                             : {
            guildId : "1358869848138059966"
            id      : "1460760804134752443"
            roleId  : "1460760804134752443"
            roleName: "go sdk maintainers (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-go-sdk"
        }
      ~ inspector maintainers (synced)                          : {
            guildId : "1358869848138059966"
            id      : "1460760676367597740"
            roleId  : "1460760676367597740"
            roleName: "inspector maintainers (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-inspector-maintainers"
        }
      ~ interceptors working group (synced)                     : {
            guildId : "1358869848138059966"
            id      : "1496277766046355539"
            roleId  : "1496277766046355539"
            roleName: "interceptors working group (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-interceptors-wg"
        }
      ~ java sdk maintainers (synced)                           : {
            guildId : "1358869848138059966"
            id      : "1460760695821041767"
            roleId  : "1460760695821041767"
            roleName: "java sdk maintainers (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-java-sdk"
        }
      ~ kotlin sdk maintainers (synced)                         : {
            guildId : "1358869848138059966"
            id      : "1460760698316652557"
            roleId  : "1460760698316652557"
            roleName: "kotlin sdk maintainers (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-kotlin-sdk"
        }
      ~ lead maintainers (synced)                               : {
            guildId : "1358869848138059966"
            id      : "1460760679064535238"
            roleId  : "1460760679064535238"
            roleName: "lead maintainers (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-lead-maintainers"
        }
      ~ maintainers (synced)                                    : {
            guildId : "1358869848138059966"
            id      : "1460760670395039755"
            roleId  : "1460760670395039755"
            roleName: "maintainers (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-maintainers"
        }
      ~ mcp apps working group (synced)                         : {
            guildId : "1358869848138059966"
            id      : "1461149104573907161"
            roleId  : "1461149104573907161"
            roleName: "mcp apps working group (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-mcp-apps-wg"
        }
      ~ php sdk maintainers (synced)                            : {
            guildId : "1358869848138059966"
            id      : "1460760711796887821"
            roleId  : "1460760711796887821"
            roleName: "php sdk maintainers (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-php-sdk"
        }
      ~ primitive grouping interest group (synced)              : {
            guildId : "1358869848138059966"
            id      : "1471155142358339685"
            roleId  : "1471155142358339685"
            roleName: "primitive grouping interest group (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-primitive-grouping-ig"
        }
      ~ python sdk maintainers (synced)                         : {
            guildId : "1358869848138059966"
            id      : "1460760717434163281"
            roleId  : "1460760717434163281"
            roleName: "python sdk maintainers (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-python-sdk"
        }
      ~ reference servers maintainers (synced)                  : {
            guildId : "1358869848138059966"
            id      : "1460760661985464506"
            roleId  : "1460760661985464506"
            roleName: "reference servers maintainers (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-reference-servers-maintainers"
        }
      ~ registry maintainers (synced)                           : {
            guildId : "1358869848138059966"
            id      : "1460760690611720404"
            roleId  : "1460760690611720404"
            roleName: "registry maintainers (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-registry-maintainers"
        }
      ~ ruby sdk maintainers (synced)                           : {
            guildId : "1358869848138059966"
            id      : "1460760769758101595"
            roleId  : "1460760769758101595"
            roleName: "ruby sdk maintainers (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-ruby-sdk"
        }
      ~ rust sdk maintainers (synced)                           : {
            guildId : "1358869848138059966"
            id      : "1460760775705493770"
            roleId  : "1460760775705493770"
            roleName: "rust sdk maintainers (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-rust-sdk"
        }
      ~ sdk maintainers (synced)                                : {
            guildId : "1358869848138059966"
            id      : "1460760687444758623"
            roleId  : "1460760687444758623"
            roleName: "sdk maintainers (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-sdk-maintainers"
        }
      ~ server card working group (synced)                      : {
            guildId : "1358869848138059966"
            id      : "1493598979357671554"
            roleId  : "1493598979357671554"
            roleName: "server card working group (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-server-card-wg"
        }
      ~ skills over mcp working group (synced)                  : {
            guildId : "1358869848138059966"
            id      : "1539652804610621562"
            roleId  : "1539652804610621562"
            roleName: "skills over mcp working group (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-skills-over-mcp-wg"
        }
      ~ swift sdk maintainers (synced)                          : {
            guildId : "1358869848138059966"
            id      : "1460760701344813136"
            roleId  : "1460760701344813136"
            roleName: "swift sdk maintainers (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-swift-sdk"
        }
      ~ tool annotations interest group (synced)                : {
            guildId : "1358869848138059966"
            id      : "1483420327001329685"
            roleId  : "1483420327001329685"
            roleName: "tool annotations interest group (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-tool-annotations-ig"
        }
      ~ transports working group (synced)                       : {
            guildId : "1358869848138059966"
            id      : "1460760773134651505"
            roleId  : "1460760773134651505"
            roleName: "transports working group (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-transport-wg"
        }
      ~ triggers & events working group (synced)                : {
            guildId : "1358869848138059966"
            id      : "1486488186405392518"
            roleId  : "1486488186405392518"
            roleName: "triggers & events working group (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-triggers-events-wg"
        }
      ~ typescript sdk maintainers (synced)                     : {
            guildId : "1358869848138059966"
            id      : "1460760714607071465"
            roleId  : "1460760714607071465"
            roleName: "typescript sdk maintainers (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-typescript-sdk"
        }
      ~ use-mcp maintainers (synced)                            : {
            guildId : "1358869848138059966"
            id      : "1460760684643221556"
            roleId  : "1460760684643221556"
            roleName: "use-mcp maintainers (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-use-mcp-maintainers"
        }
      ~ wg/ig facilitators (synced)                             : {
            guildId : "1358869848138059966"
            id      : "1466097565048246467"
            roleId  : "1466097565048246467"
            roleName: "wg/ig facilitators (synced)"
            token   : [secret]
            urn     : "urn:pulumi:prod::mcp-access::pulumi-nodejs:dynamic:Resource::discord-role-wg-ig-facilitators"
        }
    }
  ~ githubTeams        : {
      ~ agents-wg                    : {
            createDefaultMaintainer: false
            description            : "Agents Working Group \n(Managed by github.com/modelcontextprotocol/access)"
            etag                   : "W/\"a87037b0484ef3e71ab47ebe98a6349ad4d4d4a14b8c8d48626e9f83bc2f0020\""
            id                     : "17337325"
            membersCount           : 4
            name                   : "agents-wg"
            nodeId                 : "T_kwDOCt2Azc4BCIvt"
            notificationSetting    : "notifications_enabled"
            parentTeamId           : "14435868"
            parentTeamReadId       : "14435868"
            parentTeamReadSlug     : "working-groups"
            privacy                : "closed"
            slug                   : "agents-wg"
            urn                    : "urn:pulumi:prod::mcp-access::github:index/team:Team::agents-wg"
        }
      ~ auth-maintainers             : {
            createDefaultMaintainer: false
            description            : "Auth Maintainers \n(Managed by github.com/modelcontextprotocol/access)"
            etag                   : "W/\"014f55329fc9894bb7aaebd37716bd9b32edc5fc2ce173263adf2b3a28bd7a86\""
            id                     : "16083315"
            membersCount           : 7
            name                   : "auth-maintainers"
            nodeId                 : "T_kwDOCt2Azc4A9Wlz"
            notificationSetting    : "notifications_enabled"
            parentTeamId           : "14435868"
            parentTeamReadId       : "14435868"
            parentTeamReadSlug     : "working-groups"
            privacy                : "closed"
            slug                   : "auth-maintainers"
            urn                    : "urn:pulumi:prod::mcp-access::github:index/team:Team::auth-maintainers"
        }
      ~ auth-wg-fine-grained-authz   : {
            createDefaultMaintainer: false
            description            : "Auth Fine-Grained Authorization Working Group \n(Managed by github.com/modelcontextprotocol/access)"
            etag                   : "W/\"40a5e1b5c7645af5d62e8a0492c973552bf97bf2fd4f0110df44d2b8b371e476\""
            id                     : "19051555"
            membersCount           : 0
            name                   : "auth-wg-fine-grained-authz"
            nodeId                 : "T_kwDOCt2Azc4BIrQj"
            notificationSetting    : "notifications_enabled"
            parentTeamId           : "14435868"
            parentTeamReadId       : "14435868"
            parentTeamReadSlug     : "working-groups"
            privacy                : "closed"
            slug                   : "auth-wg-fine-grained-authz"
            urn                    : "urn:pulumi:prod::mcp-access::github:index/team:Team::auth-wg-fine-grained-authz"
        }
      ~ auth-wg-tool-scopes          : {
            createDefaultMaintainer: false
            description            : "Auth Tool Scopes Working Group \n(Managed by github.com/modelcontextprotocol/access)"
            etag                   : "W/\"f57763650ef26b5d746bb5b1852a6913fe9a312c6d8a6a0ba5c0cb5414c1f4a3\""
            id                     : "19051557"
            membersCount           : 0
            name                   : "auth-wg-tool-scopes"
            nodeId                 : "T_kwDOCt2Azc4BIrQl"
            notificationSetting    : "notifications_enabled"
            parentTeamId           : "14435868"
            parentTeamReadId       : "14435868"
            parentTeamReadSlug     : "working-groups"
            privacy                : "closed"
            slug                   : "auth-wg-tool-scopes"
            urn                    : "urn:pulumi:prod::mcp-access::github:index/team:Team::auth-wg-tool-scopes"
        }
      ~ conformance-auth             : {
            createDefaultMaintainer: false
            description            : "Conformance authorization-server code owners \n(Managed by github.com/modelcontextprotocol/access)"
            etag                   : "W/\"9990a44d89e561815cd581d61e4210f299d12b504168247b0928eb236f441ea3\""
            id                     : "19337897"
            membersCount           : 2
            name                   : "conformance-auth"
            nodeId                 : "T_kwDOCt2Azc4BJxKp"
            notificationSetting    : "notifications_enabled"
            privacy                : "closed"
            slug                   : "conformance-auth"
            urn                    : "urn:pulumi:prod::mcp-access::github:index/team:Team::conformance-auth"
        }
      ~ core-maintainers             : {
            createDefaultMaintainer: false
            description            : "Core maintainers \n(Managed by github.com/modelcontextprotocol/access)"
            etag                   : "W/\"914687df0e88e8d66cbe0003b3fae9558a3431620a4cce2d7fb3f3d7c227253a\""
            id                     : "14435865"
            membersCount           : 11
            name                   : "core-maintainers"
            nodeId                 : "T_kwDOCt2Azc4A3EYZ"
            notificationSetting    : "notifications_enabled"
            parentTeamId           : "14435861"
            parentTeamReadId       : "14435861"
            parentTeamReadSlug     : "steering-committee"
            privacy                : "closed"
            slug                   : "core-maintainers"
            urn                    : "urn:pulumi:prod::mcp-access::github:index/team:Team::core-maintainers"
        }
      ~ core-primitive-wg            : {
            createDefaultMaintainer: false
            description            : "Core Primitive Working Group \n(Managed by github.com/modelcontextprotocol/access)"
            etag                   : "W/\"4e17c905acc9b73f8aa3bb1b7f7d753992fe2b859550b02aafecd8208981dffc\""
            id                     : "19087061"
            membersCount           : 2
            name                   : "core-primitive-wg"
            nodeId                 : "T_kwDOCt2Azc4BIz7V"
            notificationSetting    : "notifications_enabled"
            parentTeamId           : "14435868"
            parentTeamReadId       : "14435868"
            parentTeamReadSlug     : "working-groups"
            privacy                : "closed"
            slug                   : "core-primitive-wg"
            urn                    : "urn:pulumi:prod::mcp-access::github:index/team:Team::core-primitive-wg"
        }
      ~ csharp-sdk                   : {
            createDefaultMaintainer: false
            description            : "Official C# SDK maintainers \n(Managed by github.com/modelcontextprotocol/access)"
            etag                   : "W/\"03e306b765abaeee17c075f60a72355b26e37826b2286e6469577332c086d696\""
            id                     : "14435898"
            membersCount           : 10
            name                   : "csharp-sdk"
            nodeId                 : "T_kwDOCt2Azc4A3EY6"
            notificationSetting    : "notifications_enabled"
            parentTeamId           : "14435871"
            parentTeamReadId       : "14435871"
            parentTeamReadSlug     : "sdk-maintainers"
            privacy                : "closed"
            slug                   : "csharp-sdk"
            urn                    : "urn:pulumi:prod::mcp-access::github:index/team:Team::csharp-sdk"
        }
      ~ csharp-sdk-admin             : {
            createDefaultMaintainer: false
            description            : "C# SDK repository admins \n(Managed by github.com/modelcontextprotocol/access)"
            etag                   : "W/\"0da66bb3c56e45175d57ad2c4de8fb5d33c29e271d0aee283a3fc5b833afafb7\""
            id                     : "16644883"
            membersCount           : 8
            name                   : "csharp-sdk-admin"
            nodeId                 : "T_kwDOCt2Azc4A_fsT"
            notificationSetting    : "notifications_enabled"
            parentTeamId           : "14435898"
            parentTeamReadId       : "14435898"
            parentTeamReadSlug     : "csharp-sdk"
            privacy                : "closed"
            slug                   : "csharp-sdk-admin"
            urn                    : "urn:pulumi:prod::mcp-access::github:index/team:Team::csharp-sdk-admin"
        }
      ~ docs-maintainers             : {
            createDefaultMaintainer: false
            description            : "MCP docs maintainers \n(Managed by github.com/modelcontextprotocol/access)"
            etag                   : "W/\"b8da568c164bc2df8fa35de7df6deb9d166138a3f3fcef1afa9e7cada535e545\""
            id                     : "15811679"
            membersCount           : 13
            name                   : "docs-maintainers"
            nodeId                 : "T_kwDOCt2Azc4A8URf"
            notificationSetting    : "notifications_enabled"
            parentTeamId           : "14435861"
            parentTeamReadId       : "14435861"
            parentTeamReadSlug     : "steering-committee"
            privacy                : "closed"
            slug                   : "docs-maintainers"
            urn                    : "urn:pulumi:prod::mcp-access::github:index/team:Team::docs-maintainers"
        }
      ~ file-uploads-wg              : {
            createDefaultMaintainer: false
            description            : "File Uploads Working Group \n(Managed by github.com/modelcontextprotocol/access)"
            etag                   : "W/\"116e9fa216cd7e05f1c1b265a94c177681318c0954df6ab0ce6d613e19848a9c\""
            id                     : "17260661"
            membersCount           : 4
            name                   : "file-uploads-wg"
            nodeId                 : "T_kwDOCt2Azc4BB2B1"
            notificationSetting    : "notifications_enabled"
            parentTeamId           : "14435868"
            parentTeamReadId       : "14435868"
            parentTeamReadSlug     : "working-groups"
            privacy                : "closed"
            slug                   : "file-uploads-wg"
            urn                    : "urn:pulumi:prod::mcp-access::github:index/team:Team::file-uploads-wg"
        }
      ~ filesystems-wg               : {
            createDefaultMaintainer: false
            description            : "Filesystems Working Group \n(Managed by github.com/modelcontextprotocol/access)"
            etag                   : "W/\"63b76b164a39669b8a2e9f9cf8453c27c173893d5a76889cb9f97a4170d8b15a\""
            id                     : "19423521"
            membersCount           : 4
            name                   : "filesystems-wg"
            nodeId                 : "T_kwDOCt2Azc4BKGEh"
            notificationSetting    : "notifications_enabled"
            parentTeamId           : "14435868"
            parentTeamReadId       : "14435868"
            parentTeamReadSlug     : "working-groups"
            privacy                : "closed"
            slug                   : "filesystems-wg"
            urn                    : "urn:pulumi:prod::mcp-access::github:index/team:Team::filesystems-wg"
        }
      ~ go-sdk                       : {
            createDefaultMaintainer: false
            description            : "The Go SDK Team \n(Managed by github.com/modelcontextprotocol/access)"
            etag                   : "W/\"033ddab3b142fae01370252a1bdd4d06c0c0ad1207276c291544e68b9f1b5b29\""
            id                     : "14435896"
            membersCount           : 10
            name                   : "go-sdk"
            nodeId                 : "T_kwDOCt2Azc4A3EY4"
            notificationSetting    : "notifications_enabled"
            parentTeamId           : "14435871"
            parentTeamReadId       : "14435871"
            parentTeamReadSlug     : "sdk-maintainers"
            privacy                : "closed"
            slug                   : "go-sdk"
            urn                    : "urn:pulumi:prod::mcp-access::github:index/team:Team::go-sdk"
        }
      ~ ig-financial-services        : {
            createDefaultMaintainer: false
            description            : "Financial Services Interest Group \n(Managed by github.com/modelcontextprotocol/access)"
            etag                   : "W/\"6f439e315870ed74de7e58adb49486c9d464a816561d49be99663220ec8d30eb\""
            id                     : "14435884"
            membersCount           : 5
            name                   : "ig-financial-services"
            nodeId                 : "T_kwDOCt2Azc4A3EYs"
            notificationSetting    : "notifications_enabled"
            parentTeamId           : "14435869"
            parentTeamReadId       : "14435869"
            parentTeamReadSlug     : "interest-groups"
            privacy                : "closed"
            slug                   : "ig-financial-services"
            urn                    : "urn:pulumi:prod::mcp-access::github:index/team:Team::ig-financial-services"
        }
      ~ inspector-maintainers        : {
            createDefaultMaintainer: false
            description            : "MCP Inspector maintainers \n(Managed by github.com/modelcontextprotocol/access)"
            etag                   : "W/\"0013c4cf15231e7cb15941576402cd8f9f2f912ff9d6602f031efd93cd6f440b\""
            id                     : "14642559"
            membersCount           : 4
            name                   : "inspector-maintainers"
            nodeId                 : "T_kwDOCt2Azc4A321_"
            notificationSetting    : "notifications_enabled"
            parentTeamId           : "14435861"
            parentTeamReadId       : "14435861"
            parentTeamReadSlug     : "steering-committee"
            privacy                : "closed"
            slug                   : "inspector-maintainers"
            urn                    : "urn:pulumi:prod::mcp-access::github:index/team:Team::inspector-maintainers"
        }
      ~ interceptors-wg              : {
            createDefaultMaintainer: false
            description            : "Interceptors Working Group \n(Managed by github.com/modelcontextprotocol/access)"
            etag                   : "W/\"bdf51233d9760bf25db731c5904b7b292532de5ed228f3b0faa534cad08aac75\""
            id                     : "17218506"
            membersCount           : 5
            name                   : "interceptors-wg"
            nodeId                 : "T_kwDOCt2Azc4BBrvK"
            notificationSetting    : "notifications_enabled"
            parentTeamId           : "14435868"
            parentTeamReadId       : "14435868

... (truncated)

@claude claude Bot changed the title Ignore org-role teams in RepositoryCollaborators to unblock deploys Ignore org-role teams in RepositoryCollaborators to stop per-deploy churn Sep 13, 2026
GitHub's list-repository-teams API now also returns teams whose access
comes from an organization role (orgRoles.ts: lead-maintainers and
core-maintainers hold all_repo_admin, security-managers holds
security_manager). During `pulumi up --refresh` the provider reads these
teams as direct collaborators on every repository, then tries to DELETE
the direct team-repo association where repoAccess.ts does not grant it —
and GitHub 404s because no direct association exists. This broke every
deploy starting with run #253 (first failure on experimental-ext-skills,
where refresh picked up lead-maintainers).

The pinned @pulumi/github 6.12.1 provider predates the upstream fix that
skips non-direct teams (integrations/terraform-provider-github#3571), so
work around it by passing ignoreTeams for the org-role-holding teams on
each RepositoryCollaborators resource — except teams the repository's
repoAccess.ts entry grants directly (e.g. lead-maintainers on
maintainer-docs), which must stay managed by Pulumi.

Remove this workaround once a @pulumi/github release including the
upstream fix is adopted.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H4JKj5FVkmj6bRzgh1GPrY
@claude
claude Bot force-pushed the claude/ignore-org-role-teams branch from 0029f1e to 83a88f1 Compare September 13, 2026 03:39
@claude
claude Bot deployed to production September 13, 2026 03:39 Active
@localden
localden merged commit e53fad2 into main Sep 13, 2026
5 checks passed
@localden
localden deleted the claude/ignore-org-role-teams branch September 13, 2026 03:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants