Linear
Hubungkan CAF Orchestrator ke Linear supaya pipeline kamu terpicu otomatis dari status ticket.
CAF Orchestrator memantau perubahan status ticket Linear lewat webhook, lalu menjalankan pipeline agent. Halaman ini menambahkan setup khusus Linear di atas dasar yang dibahas di CAF Orchestrator.
1. Buat API key
Di Linear, buka Settings → API → Personal API keys dan buat key baru.
Orchestrator memakainya untuk membaca ticket dan memposting comment. Tambahkan ke
.env Orchestrator sebagai LINEAR_API_KEY.
2. Daftarkan webhook
Di Settings → API → Webhooks, tambahkan webhook baru:
- URL:
https://<host-vps-kamu>/webhooks/linear - Event:
Issue - Secret: samakan dengan
LINEAR_WEBHOOK_SECRETdi Orchestrator
3. Tentukan state "Ready for AI"
Pipeline dipicu oleh satu workflow state. Buat state di tim Linear kamu
(misalnya "Ready for AI") dan taruh UUID-nya di caf.config.yaml:
linear:
readyStateId: 00000000-0000-0000-0000-000000000000
Nama state-nya bebas — yang dicocokkan hanya UUID. Startup langsung gagal kalau
linear.readyStateId tidak diisi.
4. Petakan prefix ticket ke project
Ticket di-routing berdasarkan prefix key-nya. Untuk ticket seperti ABC-123,
tambahkan project dengan ticketPrefix: ABC:
projects:
your-project:
ticketPrefix: ABC
repoCloneUrl: https://github.com/your-org/your-repo.git
baseBranch: main
workspaceDir: /tmp/caf-orchestrator/workspace/your-project
Apa yang terjadi setelah webhook diterima
Orchestrator memverifikasi signature dan timestamp, lalu dedupe berdasarkan delivery ID. Ia hanya bereaksi pada transisi state yang sesungguhnya ke ready state — mengedit field lain di ticket yang sudah ada di sana tidak memicu apa pun. Dari situ seluruh rantai agent jalan seperti dijelaskan di CAF Orchestrator, dan hasilnya diposting balik sebagai comment di ticket.
Memindahkan ticket kembali ke ready state saat branch ai-agent/<TICKET-KEY>-nya
masih ada akan melanjutkan pipeline yang berhenti, bukan memulai yang baru.
Pertanyaan Clarify dan persetujuan spec
Bila spec Planner punya pertanyaan BLOCKING yang terbuka, pipeline berhenti dan
berkomentar di ticket berisi pertanyaannya (komentar diawali ❓ CAF-CLARIFY). Jawab
lewat comment di ticket dan pindahkan kembali ke ready state: Planner melanjutkan draft
yang tersimpan dengan comment yang ditulis setelah permintaan klarifikasi terakhir
(comment dari akun bot dilewati).
Ticket dengan label yang di-set di linear.specGateLabel (default spec-approval)
berhenti setelah Planner di Draft PR yang berisi spec, sampai seseorang berkomentar
/caf-approve-spec di PR itu. Label dibaca saat ticket masuk ke ready state. Keduanya
bisa di-override per project. Lihat
CAF Orchestrator.