Přeskočit na obsah

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)

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:

Terminál
pnpm install
cp "$CC_ROOT_PATH/.env" .env
pnpm run build

Chová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.

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ě).

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.