community/github-teams
Beth Griggs 5ddac53cd7
feat: sync GitHub teams from config via API with dry-run support
Adds a script to create and manage GitHub teams based on a YAML config file.
Supports parent-child team relationships and a `--dry-run` mode to preview
changes without applying them.

Also creates an initial configuration for `community-plugins` teams.

This replaces the earlier proof-of-concept from backstage/community-plugins#3946
with a functional implementation using the GitHub API.

Signed-off-by: Beth Griggs <bethanyngriggs@gmail.com>
2025-05-29 14:57:46 +01:00
..
TEAMS feat: sync GitHub teams from config via API with dry-run support 2025-05-29 14:57:46 +01:00
.gitignore feat: sync GitHub teams from config via API with dry-run support 2025-05-29 14:57:46 +01:00
README.md feat: sync GitHub teams from config via API with dry-run support 2025-05-29 14:57:46 +01:00
package.json feat: sync GitHub teams from config via API with dry-run support 2025-05-29 14:57:46 +01:00
team-sync.js feat: sync GitHub teams from config via API with dry-run support 2025-05-29 14:57:46 +01:00
yarn.lock feat: sync GitHub teams from config via API with dry-run support 2025-05-29 14:57:46 +01:00

README.md

Backstage GitHub Team Sync

A script to sync GitHub teams and their members based on a YAML config file.

📦 Requirements

  • Node.js v18+
  • A GitHub personal access token (set as GITHUB_TOKEN env var)

🚀 Usage

node team-sync --config path/to/teams.yaml

Optional dry-run mode:

node team-sync.js --config path/to/teams.yaml --dry-run

🛠️ Example Config (teams.yaml)

teams:
  - name: community-plugins-$plugin
    description: Maintainers of $plugin
    parent: community-plugins-owners
    members:
      - GitHubUserA
      - GitHubUserB