Skrip repo
Skrip repo adalah skrip shell yang Anda konfigurasikan per repo (Pengaturan →
Repositori → ikon terminal pada baris repo) yang dijalankan oleh server Control
Center terhadap worktree sebuah space dari repo tersebut — checkout
terisolasi di <dataDir>/<workspaceId>/spaces/<spaceId>/repos/<repo>/ tempat
agen bekerja.
Ada dua jenis:
| Skrip | Kapan dijalankan | Gunakan untuk |
|---|---|---|
| Setup | Tepat setelah worktree diprovision untuk sebuah space | Menginstal dependensi, menghasilkan berkas, menyalin .env |
| Arsip | Tepat sebelum worktree dihancurkan atau dikumpulkan sampahnya | Membersihkan sumber daya di luar worktree (jaringan docker, tunnel, status eksternal) |
Di mana skrip dijalankan
Bagian berjudul “Di mana skrip dijalankan”Kedua skrip dijalankan melalui bash -lc (shell login, sehingga alat yang
dipasang lewat Homebrew/nvm ada di PATH) dengan worktree sebagai direktori
kerja, dan variabel lingkungan berikut disetel:
| Variabel | Nilai |
|---|---|
CC_WORKSPACE_PATH |
Worktree (cwd skrip) |
CC_ROOT_PATH |
Repo sumber yang terdaftar — checkout Anda sendiri |
CC_SPACE_ID |
Space tempat worktree itu berada |
CC_SPACE_NAME |
Nama tampilan space |
CC_REPO_NAME |
Nama tampilan repo |
Contoh, skrip setup yang menginstal dependensi dan memasukkan .env milik repo
yang diabaikan git:
pnpm installcp "$CC_ROOT_PATH/.env" .envpnpm run buildPerilaku kegagalan
Bagian berjudul “Perilaku kegagalan”- Skrip setup yang keluar dengan kode bukan nol (atau melewati batas waktu 5 menitnya) menggagalkan provisioning space: space menampilkan status gagal beserta tombol coba lagi, dan ekor keluaran run tersebut dicatat. Coba lagi akan memprovision dari worktree yang bersih dan menjalankan skrip itu sekali lagi — tulis skrip setup agar pengulangan setelah instalasi yang belum tuntas tetap berhasil (manajer paket memang sudah berperilaku seperti ini).
- Skrip arsip bersifat best-effort: kegagalannya (atau batas waktu 2 menitnya) tetap dicatat tetapi tidak pernah menghalangi penghapusan. Skrip arsip berjalan pada jalur GC yang tidak punya siapa pun untuk menjawab permintaan konfirmasi (space dihapus, PR digabungkan, pembersihan terjadwal).
Setup hanya berjalan pada worktree yang baru: mengirim ulang agen ke space yang sudah hangat akan memakai ulang checkout yang ada dan tidak membayar ulang biaya instalasinya.
Riwayat eksekusi
Bagian berjudul “Riwayat eksekusi”Setiap eksekusi dicatat beserta status, durasi, kode keluar, dan ekor keluaran
yang panjangnya dibatasi, terlihat di dialog pengaturan yang sama pada “Eksekusi
terbaru” (langganan repos.watchScriptRuns mengalirkannya secara langsung).
Skrip adalah shell yang dieksekusi oleh server, sehingga penulisannya
dibatasi hanya untuk admin ruang kerja dan dijaga oleh kelas aksi
processSpawn — jaring pagar pengaman yang sama yang menggerbangi setiap
operasi pemunculan proses lainnya.