One-command collaborator management for GitHub repos with GitOps support.
Project description
addteam
Invite GitHub collaborators from a simple YAML file.
Install
pip install addteam
Or run without installing:
uvx addteam
Prerequisite: GitHub CLI must be installed and authenticated (gh auth login).
First Run
# In your repo directory, create a team.yaml
addteam --init
# Edit team.yaml with your team members, then run:
addteam
That's it! Your collaborators will be invited.
team.yaml Format
default_permission: push
admins:
- alice
developers:
- bob
- charlie
reviewers:
- eve
Role names map to permissions automatically:
| Role | Permission |
|---|---|
admins |
admin |
maintainers |
maintain |
developers, contributors |
push |
reviewers, readers |
pull |
triagers |
triage |
Common Commands
addteam # invite from local team.yaml
addteam -n # dry-run (preview only)
addteam -a # audit (show drift)
addteam -s # sync (also removes unlisted users)
addteam owner/repo # use team.yaml from another repo
Central Team Config
Keep one team.yaml in a shared repo, apply it anywhere:
# Anyone on your team can run this in any repo:
uvx addteam myorg/team-config
The AI summary at the end is perfect for sharing via email or Slack.
Options
| Flag | Description |
|---|---|
-n, --dry-run |
Preview without making changes |
-s, --sync |
Remove collaborators not in list |
-a, --audit |
Show drift without making changes |
-r, --repo |
Target a specific repo |
-q, --quiet |
Minimal output |
--no-welcome |
Skip creating welcome issues |
--no-ai |
Skip AI-generated summaries |
GitOps Setup
Automatically sync collaborators when team.yaml changes:
addteam --init --init-action
This creates:
team.yaml- your team config.github/workflows/sync-collaborators.yml- runs on push
Add a TEAM_SYNC_TOKEN secret (PAT with repo scope) to your repo.
Advanced Features
Expiring Access
contractors:
- username: temp-dev
permission: push
expires: 2025-06-01
GitHub Teams (orgs)
teams:
- myorg/backend-team
- myorg/frontend-team: pull
Multi-Repo Management
addteam --init-multi-repo
Creates repos.txt to sync the same team across multiple repos.
Welcome Issues
New collaborators automatically get a welcome issue with an AI-generated summary of your repo (requires OPENAI_API_KEY, ANTHROPIC_API_KEY, or GOOGLE_API_KEY).
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file addteam-0.8.9.tar.gz.
File metadata
- Download URL: addteam-0.8.9.tar.gz
- Upload date:
- Size: 22.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0e4fe4b5cd31797b3a23e968278376c53d80bb4b279c145040def67574ec662
|
|
| MD5 |
26d9a1f9d8d56ab443532240cf677cbb
|
|
| BLAKE2b-256 |
d378cc3569e078d542d870b182acda49ed03f26eea938c78e408870b28d537d1
|
File details
Details for the file addteam-0.8.9-py3-none-any.whl.
File metadata
- Download URL: addteam-0.8.9-py3-none-any.whl
- Upload date:
- Size: 18.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fe5416b184fc60e2d95846c6e9f90d6461a6c1514d611700c3e960584413519d
|
|
| MD5 |
e11b73c9a12aea34bef094cd7b19c64a
|
|
| BLAKE2b-256 |
474dc9f8bf960a19e2eef1de9a174bbd959de29f522b675bc2f2ed647fd35557
|