Skip to content

chore(github): add foc-wg-eng access and clean team/repo config#44

Merged
BigLep merged 4 commits into
masterfrom
biglep/2026-05-27-cleanup
May 28, 2026
Merged

chore(github): add foc-wg-eng access and clean team/repo config#44
BigLep merged 4 commits into
masterfrom
biglep/2026-05-27-cleanup

Conversation

@BigLep
Copy link
Copy Markdown
Contributor

@BigLep BigLep commented May 27, 2026

Summary

  • create foc-wg-eng team and add requested members, including org membership updates for silent-cipher, LexLuthr, and snadrus
  • grant foc-wg-eng write access to early-repair and read access to infra
  • include additional FilOzone org/repository access cleanup captured in this config update

Motivation

A primary goal is ensuring the foc WG has the right access to early-repair and infra, while bundling related access cleanup in the same change set.

Test plan

  • verify YAML parses and diff is scoped to github/FilOzone.yml
  • confirm early-repair has teams.push: [foc-wg-eng]
  • confirm infra has teams.pull: [foc-wg-eng]
  • confirm team foc-wg-eng exists with the requested membership

Made with Cursor

Grant foc-wg-eng write access to early-repair and read access to infra, add needed members, and apply related repository/team cleanup updates in FilOzone org config.

Co-authored-by: Cursor <cursoragent@cursor.com>
Copilot AI review requested due to automatic review settings May 27, 2026 15:56
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 27, 2026

The following access changes will be introduced as a result of applying the plan:

Access Changes
User angelo-gh3990:
  - will lose push permission to tim-docs
User bajtos:
  - will lose maintain permission to filecoin-pay-auction-bot
  - will lose push permission to filecoin-services
  - will lose push permission to fs-pm
  - will lose push permission to synapse-sdk
  - will lose push permission to tim-docs
User beck-8:
  - will gain push permission to early-repair
User biga816:
  - will lose push permission to tim-docs
User biglep:
  - will lose push permission to tim-docs
  - will lose admin permission to tim-workstream
User charlymartin:
  - will lose push permission to filecoin-cloud
  - will lose push permission to synapse-website
User filozzy:
  - will gain push permission to early-repair
User geomatrick:
  - will lose maintain permission to filecoin-pay-auction-bot
  - will lose push permission to filecoin-services
  - will lose admin permission to fs-pm
  - will lose admin permission to requests-for-startups
  - will lose push permission to synapse-sdk
  - will lose push permission to tim-docs
User gmoranxyz:
  - will lose push permission to filecoin-cloud
User hugomrdias:
  - will gain pull permission to infra
User irenegia:
  - will lose push permission to tim-docs
User jennijuju:
  - will have the permission to synapse-sdk change from admin to push
  - will lose push permission to tim-docs
  - will gain admin permission to requests-for-startups
User juliangruber:
  - will lose push permission to tim-docs
  - will gain push permission to early-repair
User kubuxu:
  - will lose push permission to tim-docs
User lexluthr:
  - will gain push permission to early-repair
  - will gain pull permission to infra
  - will join the organization as a member (remind them to accept the email invitation)
User longfeiwan9:
  - will lose push permission to tim-docs
User lucaniz:
  - will lose push permission to tim-docs
User momack2:
  - will have the permission to synapse-sdk change from admin to push
  - will lose push permission to tim-docs
User nandit123:
  - will lose triage permission to tim-workstream
User nijoe1:
  - will lose push permission to tim-docs
  - will lose push permission to tim-workstream
User pyropy:
  - will lose push permission to filecoin-services
  - will lose push permission to fs-pm
  - will lose push permission to synapse-sdk
  - will lose push permission to tim-docs
User rjan90:
  - will lose push permission to tim-docs
User rvagg:
  - will lose push permission to tim-docs
User sgtpooki:
  - will lose push permission to tim-docs
User silent-cipher:
  - will gain push permission to early-repair
  - will join the organization as a member (remind them to accept the email invitation)
User timfong888:
  - will lose admin permission to atomicmemory.ai-demo
  - will lose maintain permission to dealbot
  - will lose maintain permission to early-repair
  - will lose push permission to filecoin-8004-server
  - will lose admin permission to filecoin-cloud
  - will lose maintain permission to filecoin-pay
  - will lose admin permission to filecoin-pay-auction-bot
  - will lose admin permission to filecoin-pay-console-stories
  - will lose push permission to filecoin-pay-explorer
  - will lose push permission to filecoin-services
  - will lose maintain permission to foc-devnet
  - will lose admin permission to fs-pm
  - will lose admin permission to infra
  - will lose push permission to pdp
  - will lose admin permission to sdk-user-stories
  - will lose maintain permission to security-triage
  - will lose admin permission to sp-telemetry-stories
  - will lose push permission to synapse-sdk
  - will lose maintain permission to synapse-website
  - will lose admin permission to tim-docs
  - will lose admin permission to tim-import
  - will lose admin permission to tim-workstream
  - will lose push permission to tpm-utils
User tippyflitsuk:
  - will lose push permission to tim-docs
User trruckerfling:
  - will lose push permission to tim-docs
User wjmelements:
  - will lose push permission to tim-docs
User zenground0:
  - will have the permission to synapse-sdk change from admin to push
  - will lose push permission to tim-docs
User snadrus:
  - will join the organization as a [object Object] (remind them to accept the email invitation)
  - will gain push permission to early-repair
  - will gain pull permission to infra

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the FilOzone GitHub-as-code configuration to introduce the new foc-wg-eng team, ensure requested org/team membership changes are applied, and adjust repository access/cleanup (including archiving some repos) in a single scoped config update.

Changes:

  • Added org membership entries for LexLuthr, snadrus, and silent-cipher, and created the foc-wg-eng team with the requested maintainers/members.
  • Granted foc-wg-eng write (push) access to early-repair and read (pull) access to infra.
  • Cleaned up several repo collaborator lists and marked multiple legacy repos as archived: true using the repo’s “archived stub” pattern.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread github/FilOzone.yml
Comment on lines 1154 to 1159
members:
maintainer:
- jennijuju
- momack2
member:
- timfong888
github-mgmt approvers:
# Notes:
Retain timfong888 in FilOzone members to avoid destroying a protected github_membership resource with prevent_destroy enabled during terraform plan.

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions
Copy link
Copy Markdown
Contributor

Before merge, verify that all the following plans are correct. After merge, Apply will regenerate the plans from the merged commit and continue only if they match.

Terraform plans

FilOzone
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create
  ~ update in-place
  - destroy

Terraform will perform the following actions:

  # github_membership.this["lexluthr"] will be created
  + resource "github_membership" "this" {
      + downgrade_on_destroy = false
      + etag                 = (known after apply)
      + id                   = (known after apply)
      + role                 = "member"
      + username             = "LexLuthr"
    }

  # github_membership.this["silent-cipher"] will be created
  + resource "github_membership" "this" {
      + downgrade_on_destroy = false
      + etag                 = (known after apply)
      + id                   = (known after apply)
      + role                 = "member"
      + username             = "silent-cipher"
    }

  # github_membership.this["snadrus"] will be created
  + resource "github_membership" "this" {
      + downgrade_on_destroy = false
      + etag                 = (known after apply)
      + id                   = (known after apply)
      + role                 = "member"
      + username             = "snadrus"
    }

  # github_repository.this["sdk-user-stories"] will be updated in-place
  ~ resource "github_repository" "this" {
      ~ archived                    = false -> true
        id                          = "sdk-user-stories"
        name                        = "sdk-user-stories"
        # (35 unchanged attributes hidden)
    }

  # github_repository.this["sp-telemetry-stories"] will be updated in-place
  ~ resource "github_repository" "this" {
      ~ archived                    = false -> true
        id                          = "sp-telemetry-stories"
        name                        = "sp-telemetry-stories"
        # (35 unchanged attributes hidden)

        # (1 unchanged block hidden)
    }

  # github_repository.this["tim-docs"] will be updated in-place
  ~ resource "github_repository" "this" {
      ~ archived                    = false -> true
        id                          = "tim-docs"
        name                        = "tim-docs"
        # (35 unchanged attributes hidden)
    }

  # github_repository.this["tim-import"] will be updated in-place
  ~ resource "github_repository" "this" {
      ~ archived                    = false -> true
        id                          = "tim-import"
        name                        = "tim-import"
        # (35 unchanged attributes hidden)
    }

  # github_repository.this["tim-workstream"] will be updated in-place
  ~ resource "github_repository" "this" {
      ~ archived                    = false -> true
        id                          = "tim-workstream"
        name                        = "tim-workstream"
        # (35 unchanged attributes hidden)
    }

  # github_repository_collaborator.this["filecoin-cloud:charlymartin"] will be destroyed
  # (because key ["filecoin-cloud:charlymartin"] is not in for_each map)
  - resource "github_repository_collaborator" "this" {
      - id         = "filecoin-cloud:CharlyMartin" -> null
      - permission = "push" -> null
      - repository = "filecoin-cloud" -> null
      - username   = "CharlyMartin" -> null
    }

  # github_repository_collaborator.this["filecoin-cloud:gmoranxyz"] will be destroyed
  # (because key ["filecoin-cloud:gmoranxyz"] is not in for_each map)
  - resource "github_repository_collaborator" "this" {
      - id         = "filecoin-cloud:gmoranxyz" -> null
      - permission = "push" -> null
      - repository = "filecoin-cloud" -> null
      - username   = "gmoranxyz" -> null
    }

  # github_repository_collaborator.this["filecoin-pay-auction-bot:bajtos"] will be destroyed
  # (because key ["filecoin-pay-auction-bot:bajtos"] is not in for_each map)
  - resource "github_repository_collaborator" "this" {
      - id         = "filecoin-pay-auction-bot:bajtos" -> null
      - permission = "maintain" -> null
      - repository = "filecoin-pay-auction-bot" -> null
      - username   = "bajtos" -> null
    }

  # github_repository_collaborator.this["filecoin-pay-auction-bot:geomatrick"] will be destroyed
  # (because key ["filecoin-pay-auction-bot:geomatrick"] is not in for_each map)
  - resource "github_repository_collaborator" "this" {
      - id         = "filecoin-pay-auction-bot:geomatrick" -> null
      - permission = "maintain" -> null
      - repository = "filecoin-pay-auction-bot" -> null
      - username   = "geomatrick" -> null
    }

  # github_repository_collaborator.this["filecoin-pay-console-stories:timfong888"] will be destroyed
  # (because key ["filecoin-pay-console-stories:timfong888"] is not in for_each map)
  - resource "github_repository_collaborator" "this" {
      - id         = "filecoin-pay-console-stories:timfong888" -> null
      - permission = "admin" -> null
      - repository = "filecoin-pay-console-stories" -> null
      - username   = "timfong888" -> null
    }

  # github_repository_collaborator.this["filecoin-services:bajtos"] will be destroyed
  # (because key ["filecoin-services:bajtos"] is not in for_each map)
  - resource "github_repository_collaborator" "this" {
      - id         = "filecoin-services:bajtos" -> null
      - permission = "push" -> null
      - repository = "filecoin-services" -> null
      - username   = "bajtos" -> null
    }

  # github_repository_collaborator.this["filecoin-services:geomatrick"] will be destroyed
  # (because key ["filecoin-services:geomatrick"] is not in for_each map)
  - resource "github_repository_collaborator" "this" {
      - id         = "filecoin-services:geomatrick" -> null
      - permission = "push" -> null
      - repository = "filecoin-services" -> null
      - username   = "geomatrick" -> null
    }

  # github_repository_collaborator.this["filecoin-services:pyropy"] will be destroyed
  # (because key ["filecoin-services:pyropy"] is not in for_each map)
  - resource "github_repository_collaborator" "this" {
      - id         = "filecoin-services:pyropy" -> null
      - permission = "push" -> null
      - repository = "filecoin-services" -> null
      - username   = "pyropy" -> null
    }

  # github_repository_collaborator.this["fs-pm:bajtos"] will be destroyed
  # (because key ["fs-pm:bajtos"] is not in for_each map)
  - resource "github_repository_collaborator" "this" {
      - id         = "fs-pm:bajtos" -> null
      - permission = "push" -> null
      - repository = "fs-pm" -> null
      - username   = "bajtos" -> null
    }

  # github_repository_collaborator.this["fs-pm:geomatrick"] will be destroyed
  # (because key ["fs-pm:geomatrick"] is not in for_each map)
  - resource "github_repository_collaborator" "this" {
      - id         = "fs-pm:geomatrick" -> null
      - permission = "admin" -> null
      - repository = "fs-pm" -> null
      - username   = "geomatrick" -> null
    }

  # github_repository_collaborator.this["fs-pm:pyropy"] will be destroyed
  # (because key ["fs-pm:pyropy"] is not in for_each map)
  - resource "github_repository_collaborator" "this" {
      - id         = "fs-pm:pyropy" -> null
      - permission = "push" -> null
      - repository = "fs-pm" -> null
      - username   = "pyropy" -> null
    }

  # github_repository_collaborator.this["requests-for-startups:geomatrick"] will be destroyed
  # (because key ["requests-for-startups:geomatrick"] is not in for_each map)
  - resource "github_repository_collaborator" "this" {
      - id         = "requests-for-startups:geomatrick" -> null
      - permission = "admin" -> null
      - repository = "requests-for-startups" -> null
      - username   = "geomatrick" -> null
    }

  # github_repository_collaborator.this["requests-for-startups:jennijuju"] will be created
  + resource "github_repository_collaborator" "this" {
      + id                          = (known after apply)
      + invitation_id               = (known after apply)
      + permission                  = "admin"
      + permission_diff_suppression = false
      + repository                  = "requests-for-startups"
      + username                    = "jennijuju"
    }

  # github_repository_collaborator.this["synapse-sdk:bajtos"] will be destroyed
  # (because key ["synapse-sdk:bajtos"] is not in for_each map)
  - resource "github_repository_collaborator" "this" {
      - id         = "synapse-sdk:bajtos" -> null
      - permission = "push" -> null
      - repository = "synapse-sdk" -> null
      - username   = "bajtos" -> null
    }

  # github_repository_collaborator.this["synapse-sdk:geomatrick"] will be destroyed
  # (because key ["synapse-sdk:geomatrick"] is not in for_each map)
  - resource "github_repository_collaborator" "this" {
      - id         = "synapse-sdk:geomatrick" -> null
      - permission = "push" -> null
      - repository = "synapse-sdk" -> null
      - username   = "geomatrick" -> null
    }

  # github_repository_collaborator.this["synapse-sdk:jennijuju"] will be destroyed
  # (because key ["synapse-sdk:jennijuju"] is not in for_each map)
  - resource "github_repository_collaborator" "this" {
      - id                          = "synapse-sdk:jennijuju" -> null
      - permission                  = "admin" -> null
      - permission_diff_suppression = false -> null
      - repository                  = "synapse-sdk" -> null
      - username                    = "jennijuju" -> null
    }

  # github_repository_collaborator.this["synapse-sdk:momack2"] will be destroyed
  # (because key ["synapse-sdk:momack2"] is not in for_each map)
  - resource "github_repository_collaborator" "this" {
      - id         = "synapse-sdk:momack2" -> null
      - permission = "admin" -> null
      - repository = "synapse-sdk" -> null
      - username   = "momack2" -> null
    }

  # github_repository_collaborator.this["synapse-sdk:pyropy"] will be destroyed
  # (because key ["synapse-sdk:pyropy"] is not in for_each map)
  - resource "github_repository_collaborator" "this" {
      - id         = "synapse-sdk:pyropy" -> null
      - permission = "push" -> null
      - repository = "synapse-sdk" -> null
      - username   = "pyropy" -> null
    }

  # github_repository_collaborator.this["synapse-sdk:zenground0"] will be destroyed
  # (because key ["synapse-sdk:zenground0"] is not in for_each map)
  - resource "github_repository_collaborator" "this" {
      - id         = "synapse-sdk:ZenGround0" -> null
      - permission = "admin" -> null
      - repository = "synapse-sdk" -> null
      - username   = "ZenGround0" -> null
    }

  # github_repository_collaborator.this["synapse-website:charlymartin"] will be destroyed
  # (because key ["synapse-website:charlymartin"] is not in for_each map)
  - resource "github_repository_collaborator" "this" {
      - id            = "synapse-website:CharlyMartin" -> null
      - invitation_id = "294227370" -> null
      - permission    = "push" -> null
      - repository    = "synapse-website" -> null
      - username      = "CharlyMartin" -> null
    }

  # github_repository_collaborator.this["synapse-website:timfong888"] will be destroyed
  # (because key ["synapse-website:timfong888"] is not in for_each map)
  - resource "github_repository_collaborator" "this" {
      - id         = "synapse-website:timfong888" -> null
      - permission = "maintain" -> null
      - repository = "synapse-website" -> null
      - username   = "timfong888" -> null
    }

  # github_team.this["foc-wg-eng"] will be created
  + resource "github_team" "this" {
      + create_default_maintainer = false
      + etag                      = (known after apply)
      + id                        = (known after apply)
      + members_count             = (known after apply)
      + name                      = "foc-wg-eng"
      + node_id                   = (known after apply)
      + parent_team_read_id       = (known after apply)
      + parent_team_read_slug     = (known after apply)
      + privacy                   = "secret"
      + slug                      = (known after apply)
    }

  # github_team_membership.this["filoz-fs:timfong888"] will be destroyed
  # (because key ["filoz-fs:timfong888"] is not in for_each map)
  - resource "github_team_membership" "this" {
      - etag     = "W/\"4dc9b7c1908136803fd35d9a55345e6b66c24463e40ff3baa0acce61bc6381cd\"" -> null
      - id       = "13124042:timfong888" -> null
      - role     = "member" -> null
      - team_id  = "13124042" -> null
      - username = "timfong888" -> null
    }

  # github_team_membership.this["foc-wg-eng:beck-8"] will be created
  + resource "github_team_membership" "this" {
      + etag     = (known after apply)
      + id       = (known after apply)
      + role     = "member"
      + team_id  = (known after apply)
      + username = "beck-8"
    }

  # github_team_membership.this["foc-wg-eng:biglep"] will be created
  + resource "github_team_membership" "this" {
      + etag     = (known after apply)
      + id       = (known after apply)
      + role     = "maintainer"
      + team_id  = (known after apply)
      + username = "BigLep"
    }

  # github_team_membership.this["foc-wg-eng:filozzy"] will be created
  + resource "github_team_membership" "this" {
      + etag     = (known after apply)
      + id       = (known after apply)
      + role     = "member"
      + team_id  = (known after apply)
      + username = "FilOzzy"
    }

  # github_team_membership.this["foc-wg-eng:hugomrdias"] will be created
  + resource "github_team_membership" "this" {
      + etag     = (known after apply)
      + id       = (known after apply)
      + role     = "member"
      + team_id  = (known after apply)
      + username = "hugomrdias"
    }

  # github_team_membership.this["foc-wg-eng:juliangruber"] will be created
  + resource "github_team_membership" "this" {
      + etag     = (known after apply)
      + id       = (known after apply)
      + role     = "member"
      + team_id  = (known after apply)
      + username = "juliangruber"
    }

  # github_team_membership.this["foc-wg-eng:kubuxu"] will be created
  + resource "github_team_membership" "this" {
      + etag     = (known after apply)
      + id       = (known after apply)
      + role     = "member"
      + team_id  = (known after apply)
      + username = "Kubuxu"
    }

  # github_team_membership.this["foc-wg-eng:lexluthr"] will be created
  + resource "github_team_membership" "this" {
      + etag     = (known after apply)
      + id       = (known after apply)
      + role     = "member"
      + team_id  = (known after apply)
      + username = "LexLuthr"
    }

  # github_team_membership.this["foc-wg-eng:rjan90"] will be created
  + resource "github_team_membership" "this" {
      + etag     = (known after apply)
      + id       = (known after apply)
      + role     = "maintainer"
      + team_id  = (known after apply)
      + username = "rjan90"
    }

  # github_team_membership.this["foc-wg-eng:rvagg"] will be created
  + resource "github_team_membership" "this" {
      + etag     = (known after apply)
      + id       = (known after apply)
      + role     = "maintainer"
      + team_id  = (known after apply)
      + username = "rvagg"
    }

  # github_team_membership.this["foc-wg-eng:sgtpooki"] will be created
  + resource "github_team_membership" "this" {
      + etag     = (known after apply)
      + id       = (known after apply)
      + role     = "member"
      + team_id  = (known after apply)
      + username = "SgtPooki"
    }

  # github_team_membership.this["foc-wg-eng:silent-cipher"] will be created
  + resource "github_team_membership" "this" {
      + etag     = (known after apply)
      + id       = (known after apply)
      + role     = "member"
      + team_id  = (known after apply)
      + username = "silent-cipher"
    }

  # github_team_membership.this["foc-wg-eng:snadrus"] will be created
  + resource "github_team_membership" "this" {
      + etag     = (known after apply)
      + id       = (known after apply)
      + role     = "member"
      + team_id  = (known after apply)
      + username = "snadrus"
    }

  # github_team_membership.this["foc-wg-eng:tippyflitsuk"] will be created
  + resource "github_team_membership" "this" {
      + etag     = (known after apply)
      + id       = (known after apply)
      + role     = "member"
      + team_id  = (known after apply)
      + username = "TippyFlitsUK"
    }

  # github_team_membership.this["foc-wg-eng:wjmelements"] will be created
  + resource "github_team_membership" "this" {
      + etag     = (known after apply)
      + id       = (known after apply)
      + role     = "member"
      + team_id  = (known after apply)
      + username = "wjmelements"
    }

  # github_team_membership.this["foc-wg-eng:zenground0"] will be created
  + resource "github_team_membership" "this" {
      + etag     = (known after apply)
      + id       = (known after apply)
      + role     = "maintainer"
      + team_id  = (known after apply)
      + username = "ZenGround0"
    }

  # github_team_membership.this["fs-pm:timfong888"] will be destroyed
  # (because key ["fs-pm:timfong888"] is not in for_each map)
  - resource "github_team_membership" "this" {
      - etag     = "W/\"c12e297b5aab815c60286934cc51eed7f1e9ab78654473bda7cf811da7123457\"" -> null
      - id       = "13891370:timfong888" -> null
      - role     = "member" -> null
      - team_id  = "13891370" -> null
      - username = "timfong888" -> null
    }

  # github_team_repository.this["foc-wg-eng:early-repair"] will be created
  + resource "github_team_repository" "this" {
      + etag       = (known after apply)
      + id         = (known after apply)
      + permission = "push"
      + repository = "early-repair"
      + team_id    = (known after apply)
    }

  # github_team_repository.this["foc-wg-eng:infra"] will be created
  + resource "github_team_repository" "this" {
      + etag       = (known after apply)
      + id         = (known after apply)
      + permission = "pull"
      + repository = "infra"
      + team_id    = (known after apply)
    }

Plan: 22 to add, 5 to change, 22 to destroy.

@BigLep BigLep self-assigned this May 27, 2026
@BigLep BigLep requested a review from rjan90 May 27, 2026 17:45
@BigLep
Copy link
Copy Markdown
Contributor Author

BigLep commented May 27, 2026

I will remove @timfong888 from the org afterwards (manual action required).

@BigLep BigLep merged commit 4dc909e into master May 28, 2026
6 checks passed
@BigLep
Copy link
Copy Markdown
Contributor Author

BigLep commented May 28, 2026

@snadrus, @LexLuthr, and @silent-cipher. You should have received an invite to join the FilOzone org per https://github.com/orgs/FilOzone/people/pending_invitations . Please accept.

image

@BigLep
Copy link
Copy Markdown
Contributor Author

BigLep commented May 28, 2026

@timfong888 : was moved as an outside collaborator and his admin access was removed from repos that have been archived:

image

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.

3 participants