Lewati ke konten

Siapkan pemicu pipeline

Pemicu adalah hal yang memulai sebuah pipeline. Setiap pemicu adalah node di kanvas, yang dijatuhkan dari bagian Trigger di pustaka node. Memilih node itu akan membuka inspector-nya di sebelah kanan — tidak ada daftar pemicu yang selalu tampil, tidak ada tab pemicu, dan tidak ada layar pemicu.

  1. Buka Pengaturan → Ruang kerja → Template pipeline.
  2. Tekan ikon pensil pada baris templat untuk membuka editor.
  3. Pilih node pemicu di kanvas. Panel kanan akan muncul dengan setelan pemicu tersebut. Jika tidak ada yang dipilih, panel itu disembunyikan.

Bagian Trigger di pustaka node menampilkan setiap jenis awal sebagai node tersendiri: manual, jadwal, webhook, dan satu kartu untuk tiap peristiwa domain. Cari merged, ticket, atau nama jenisnya (PrMerged) lalu seret kartu itu ke kanvas. Templat baru juga menampilkan ubin hantu Tambah trigger di titik masuk — pilih dari daftar yang dapat dicari yang sama.

Pemicu langsung dimasukkan. Pemicu otomatis yang baru dimulai dalam keadaan nonaktif agar penjatuhan tidak memicu eksekusi sebelum Anda mengonfigurasinya. Gunakan sakelar Aktif di inspector untuk menyalakannya, atau ikon tempat sampah untuk menghapusnya.

Jatuhkan Run manual (atau pilih dari ubin hantu) dan nyalakan Aktif di inspector-nya. Itulah yang membuat templat muncul di pemilih eksekusi. Ini bukan kasus khusus — sakelar itu menulis baris pemicu biasa yang jenis peristiwanya manual. Perubahan itu langsung tersimpan; tidak ada yang perlu disimpan.

Sakelar yang sama ada di balik Eksekusi manual di header editor, tempatnya berdampingan dengan input yang dideklarasikan templat.

Peristiwa berikut memulai sebuah eksekusi:

Label pemilih Peristiwa
PR eksternal dibuka ExternalPrDetected
PR dipublikasikan PullRequestPublished
Status PR berubah PullRequestStatusChanged
PR digabung PrMerged
Pesan diterima MessageReceived
Tiket dibuat TicketCreated
Status tiket berubah TicketStatusChanged
Tiket ditugaskan TicketAssigned
Tiket selesai TicketCompleted
Tiket gagal TicketFailed
Tiket dibatalkan TicketCancelled
Ambang anggaran terlampaui BudgetThresholdCrossed
Repositori ditambah RepoAdded
Rekaman rapat dihentikan MeetingRecordingStopped
Skill diperbarui SkillUpdated
Ruang dihapus SpaceDeleted

SpaceDeleted adalah peristiwa yang didengarkan pipeline pembersihan worktree bawaan: peristiwa itu membawa id space yang dihapus, sehingga eksekusi hanya mengambil kembali worktree milik space tersebut alih-alih menyapu seluruh ruang kerja.

Untuk kunci payload yang dibawa tiap peristiwa, lihat referensi peristiwa domain.

Pilih node Status PR berubah. Chip status di inspector adalah satu-satunya filter yang dapat dibuat oleh UI. Ketuk salah satu dari merged, closed, approved, opened, reopened; pemicu kemudian hanya terpicu saat status peristiwa cocok dengan salah satunya. Membiarkan semua chip tidak dipilih berarti tanpa filter.

Tidak ada kolom filter JSON bebas. Kunci filter yang tidak dibawa payload peristiwa tidak akan pernah cocok, jadi jangan membuatnya sendiri dengan tangan terhadap kunci yang belum Anda pastikan di referensi peristiwa domain.

Pilih node Jadwal untuk mengubah kapan pemicu itu terpicu. Kolom-kolom di inspector tersimpan sebagaimana Anda meninggalkannya:

Kolom Keterangan
Jadwal (cron atau every:seconds) Ekspresi cron lima kolom seperti 0 9 * * 1, atau interval seperti every:86400. Angka polos akan dipaksa menjadi every:<n>.
Zona waktu (opsional) Zona IANA seperti Europe/Paris. Bawaannya UTC.
Jika run terlewat Apa yang harus dilakukan terhadap pemicuan yang terlewat saat server mati: Jalankan sekali menggabungkan semua slot yang terlewat menjadi satu pemicuan saat mulai ulang (bawaan), Lewati melanjutkan pada slot berikutnya di masa mendatang.

Baris ringkasan pada ubin kanvas hanya menuliskan interval untuk bentuk every:<seconds>; ekspresi cron hanya ditampilkan sebagai “Jadwal”.

Menjatuhkan Webhook akan membuat token acak. Pilih node itu untuk menyalin jalur POST /webhooks/<token> dari inspector.

Token itu juga merupakan secret HMAC: permintaan harus membawa X-Hub-Signature-256: sha256=<hex>, dengan hex tersebut adalah HMAC-SHA256(body, token). Pengiriman yang gagal diverifikasi akan ditolak dan dicatat dalam log serta tidak dapat diputar ulang. Duplikat diabaikan berdasarkan kunci deduplikasinya.

Setiap titik awal adalah node grafnya sendiri. Menarik kabel dari Jadwal hanya menyambungkan Jadwal; Run manual dapat menempuh jalur berbeda (misalnya node kondisi) sebelum bergabung ke pekerjaan yang sama. Sebuah eksekusi masuk melalui titik awal yang cocok dengan jenis peristiwanya dan melewati subgraf milik titik awal lainnya.

Pemicu yang aktif dan jenis peristiwa serta filternya sama-sama cocok akan memulai eksekusi dengan payload peristiwa sebagai payload pemicu eksekusi tersebut — itulah acuan yang diresolusi oleh {{key}} di prompt atau skrip sebuah langkah. Peristiwa yang membawa kunci alami akan dideduplikasi, sehingga peristiwa yang sama yang terpicu dua kali tidak memulai dua eksekusi.

Templat yang nonaktif akan ditolak bahkan saat pemicunya cocok. Delapan dari tiga belas templat bawaan dikirim dalam keadaan nonaktif, sehingga pemicu yang disemai di dalamnya tidak menghasilkan apa pun sampai Anda mengaktifkan templat tersebut.

  • Gerbangi hanya jalur manual — sambungkan Run manual melalui node kondisi, dan Jadwal langsung ke pekerjaannya. Setiap titik awal memiliki kabelnya sendiri.
  • Tinjau setiap PR baru — peristiwa PR dipublikasikan pada templat pr_review.
  • Bersihkan setelah penggabungan — peristiwa Status PR berubah, yang difilter ke merged / closed / approved. Templat bawaan pr_merged_cleanup sudah mendengarkan dengan cara ini, ditambah tiket selesai/dibatalkan, SpaceDeleted, dan jadwal harian yang dipaksa aktif pada setiap penyemaian ulang karena jadwal itu adalah pengumpulan sampah.
  • Sapuan malam hari — jadwal 0 2 * * * dengan zona waktu, pada templat yang node pertamanya adalah skrip bash.
  • Bereaksi terhadap sistem eksternal — pemicu webhook, dengan sistem pemanggil menandatangani badan permintaannya seperti di atas.