Lewati ke konten

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)

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:

Jendela terminal
pnpm install
cp "$CC_ROOT_PATH/.env" .env
pnpm run build
  • 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.

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.