Skripty repozitáře
Skripty repozitáře jsou shell skripty, které nastavíš u každého repozitáře
(Nastavení → Repozitáře → ikona terminálu na řádku repozitáře) a které server
Control Center spouští ve worktree prostoru toho repozitáře — izolovaném
checkoutu v <dataDir>/<workspaceId>/spaces/<spaceId>/repos/<repo>/, kde
pracují agenti.
Jsou dva druhy:
| Skript | Kdy běží | K čemu |
|---|---|---|
| Setup | Hned po přípravě worktree pro prostor | Instalace závislostí, generování souborů, kopírování .env |
| Archive | Těsně před smazáním worktree nebo jeho úklidem přes GC | Úklid zdrojů mimo worktree (docker sítě, tunely, externí stav) |
Kde skripty běží
Sekce “Kde skripty běží”Oba skripty běží přes bash -lc (přihlašovací shell, takže nástroje
nainstalované přes Homebrew nebo nvm jsou na PATH) s worktree jako
pracovním adresářem a s těmito proměnnými prostředí:
| Proměnná | Hodnota |
|---|---|
CC_WORKSPACE_PATH |
Worktree (cwd skriptu) |
CC_ROOT_PATH |
Zaregistrovaný zdrojový repozitář — tvůj vlastní checkout |
CC_SPACE_ID |
Prostor, ke kterému worktree patří |
CC_SPACE_NAME |
Zobrazovaný název prostoru |
CC_REPO_NAME |
Zobrazovaný název repozitáře |
Třeba setup skript, který nainstaluje závislosti a přinese .env, které git
ignoruje:
pnpm installcp "$CC_ROOT_PATH/.env" .envpnpm run buildChování při selhání
Sekce “Chování při selhání”- Skript Setup, který skončí nenulově (nebo překročí pětiminutový limit), shodí přípravu prostoru: prostor ukáže stav selhání s opakováním a zapíše se konec výstupu běhu. Opakování připraví prostor z čistého worktree a skript spustí znovu — setup skripty piš tak, aby opakování po částečné instalaci prošlo (správci balíčků se tak chovají sami).
- U skriptu Archive se selhání toleruje: selhání (nebo jeho dvouminutový limit) se zapíše, ale smazání nikdy neblokuje. Archive běží na cestách GC, kde není komu odpovědět na výzvu (prostor smazaný, PR sloučený, plánovaný úklid).
Setup běží jen na novém worktree: znovu odeslat agenty do prostoru, který už checkout má, znovu použije existující checkout a instalaci neopakuje.
Historie běhů
Sekce “Historie běhů”Každé spuštění se zapíše se stavem, dobou trvání, exit kódem a omezeným koncem
výstupu. Uvidíš ho ve stejném dialogu nastavení pod „Nedávné běhy“ (odběr
repos.watchScriptRuns ho streamuje živě).
Oprávnění
Sekce “Oprávnění”Skripty jsou shell, který spouští server, takže je smějí psát jen správci
pracovního prostoru a hlídá je třída akce processSpawn — stejná síť
guardrailů, která pouští každou další operaci spouštějící proces.