Hoppa till innehåll

Reposkript

Reposkript är skalskript som du konfigurerar per repo (Inställningar → Arkiv → terminalikonen på en repos rad) och som Control Centers server kör mot en ytas worktree av det repot — den isolerade utcheckningen under <dataDir>/<workspaceId>/spaces/<spaceId>/repos/<repo>/ där agenterna arbetar.

Det finns två slag:

Skript När det körs Används för
Setup Direkt efter att en worktree har skapats för en yta Installera beroenden, generera filer, kopiera .env
Arkiv Precis innan en worktree förstörs eller skräpsamlas Städa upp resurser utanför worktreen (docker-nätverk, tunnlar, externt tillstånd)

Båda skripten körs via bash -lc (ett inloggningsskal, så verktyg installerade med Homebrew/nvm finns på PATH) med worktreen som arbetskatalog, och med följande miljövariabler satta:

Variabel Värde
CC_WORKSPACE_PATH Worktreen (skriptets cwd)
CC_ROOT_PATH Det registrerade källrepot — din egen utcheckning
CC_SPACE_ID Ytan som worktreen tillhör
CC_SPACE_NAME Ytans visningsnamn
CC_REPO_NAME Repots visningsnamn

Till exempel ett setup-skript som installerar beroenden och hämtar in repots gitignorerade .env:

Terminalfönster
pnpm install
cp "$CC_ROOT_PATH/.env" .env
pnpm run build
  • Ett setup-skript som avslutas med en felkod (eller överskrider sin 5-minuters timeout) gör att ytans provisionering misslyckas: ytan visas i det misslyckade läget med möjlighet att försöka igen, och körningens utdatasvans sparas. Ett nytt försök provisionerar från en ren worktree och kör skriptet igen — skriv setup-skript så att en omkörning efter en delvis installation fungerar (pakethanterare beter sig redan så).
  • Ett arkivskript körs i bästa möjliga mån: ett fel (eller dess 2-minuters timeout) registreras men blockerar aldrig en borttagning. Arkivskript körs i GC-vägar där ingen kan svara på en fråga (ytan borttagen, PR sammanslagen, schemalagd städning).

Setup körs bara på en färsk worktree: att skicka ut agenter igen i en varm yta återanvänder den befintliga utcheckningen och betalar inte för installationen igen.

Varje körning registreras med sin status, varaktighet, avslutskod och en begränsad utdatasvans, synlig i samma inställningsdialog under ”Senaste körningar” (repos.watchScriptRuns-prenumerationen strömmar den live).

Skript är skal som servern kör, så att skriva dem är begränsat till arbetsytans administratörer och skyddat av åtgärdsklassen processSpawn — samma räckesnät som grindar varje annan processstartande åtgärd.