39 repos, one org, branch protection live. Here's what's done, what's left, and what needs team input.
All client code lives in separate repositories under the aplayerlabs GitHub organization (Team plan). Repos are already split by project — the monorepo problem is solved.
The repo split is done. Branch protection is now live — staging and main are locked across all repos. Still outstanding: 2 team members need inviting, and naming/branching conventions vary across repos. IP protection handled via employment contracts and NDAs — team members need to understand the client confidentiality obligations they're bound to.
Everything lives inside the aplayerlabs organisation on GitHub. That's our company. Inside it: all 39 repos, all team members, and the rules that protect production.
dev, feature branches, or any branch that isn't staging or main — no limits, push freelyaplayerlabs is our GitHub organisation — it's the company container. Everything lives inside it. Nobody outside can see our code.
| Dimension | Now (39 repos, no guard rails) | Target (same repos, locked down) |
|---|---|---|
| Repo isolation | Done — 39 separate repos | Done |
| Org ownership | Done — aplayerlabs org | Done |
| Branch protection | Done — org ruleset active on all repos | Done |
| Environments | Inconsistent — some staging-only, some main-only | Three-gate: dev → staging → main |
| Team members | 2 of 4 in org | All 4 members invited |
| Teams / scoping | No teams — flat access | Per-client teams with scoped access |
| Naming convention | Mixed — ee-gct vs tenbot | Consistent client-project prefix |
| Branch strategy | 11 repos staging-only (no main): ecm-cast, ee-moac-sales, aplyr-xyz, ee-orderbook, cm-cogs, ee-moac, ee-sssvend, aa-conrados-prd, hma, ee-sss, dadcooler | All repos have main + staging |
| Client handoff | No outside collaborators | Read-only access or repo transfer |
| Merge control | Done — maintainers team bypass only | Done |
Upgraded to GitHub Team ($4/user/month, 2 seats = $8/month). Branch protection and org rulesets are now active.
Each one needs a team decision. Recommendations are highlighted.