Sari la conținut

Configurează trigger-ele pipeline-urilor

Un trigger este ceea ce pornește un pipeline. Fiecare este un nod pe canvas, tras din secțiunea Declanșatori a bibliotecii de noduri. Selectarea acelui nod îi deschide inspectorul în dreapta — nu există o listă permanentă de trigger-e, nicio filă de trigger-e și niciun ecran de trigger-e.

  1. Mergi la Setări → Spațiu de lucru → Șabloane pipeline.
  2. Apasă pictograma creion de pe rândul șablonului ca să deschizi editorul.
  3. Selectează un nod de trigger pe canvas. Panoul din dreapta apare cu setările acelui trigger. Când nu este nimic selectat, panoul este ascuns.

Secțiunea Declanșatori a bibliotecii de noduri listează fiecare tip de pornire ca nod propriu: manual, program, webhook și câte un card pentru fiecare eveniment de domeniu. Caută merged, ticket sau numele tipului (PrMerged) și trage cardul pe canvas. Un șablon nou afișează și o dală fantomă Adaugă un declanșator la ancora de intrare — alege din aceeași listă căutabilă.

Trigger-ul este inserat imediat. Trigger-ele automate noi pornesc dezactivate, ca o plasare să nu declanșeze o rulare înainte să îl fi configurat. Folosește comutatorul Activat din inspector ca să îl activezi, sau pictograma coșului de gunoi ca să îl ștergi.

Trage Rulare manuală (sau alege-o din dala fantomă) și activează Activat în inspectorul ei. Aceasta este ceea ce face șablonul să apară în lansatorul de rulări. Nu este un caz special — comutatorul scrie un rând de trigger obișnuit al cărui tip de eveniment este manual. Se persistă imediat; nu este nimic de salvat.

Același comutator se află în spatele lui Rulare manuală din antetul editorului, unde stă alături de intrările declarate ale șablonului.

Aceste evenimente pornesc o rulare:

Etichetă în selector Eveniment
PR extern deschis ExternalPrDetected
PR publicat PullRequestPublished
Starea PR s-a schimbat PullRequestStatusChanged
PR fuzionat PrMerged
Mesaj primit MessageReceived
Tichet creat TicketCreated
Starea tichetului s-a schimbat TicketStatusChanged
Tichet asignat TicketAssigned
Tichet finalizat TicketCompleted
Tichet eșuat TicketFailed
Tichet anulat TicketCancelled
Prag de buget depășit BudgetThresholdCrossed
Depozit adăugat RepoAdded
Înregistrarea întâlnirii s-a oprit MeetingRecordingStopped
Abilitate actualizată SkillUpdated
Spațiu șters SpaceDeleted

SpaceDeleted este evenimentul la care ascultă pipeline-ul integrat de curățare a worktree-urilor: el duce id-ul spațiului șters, așa că rularea recuperează exact worktree-urile acelui spațiu, în loc să măture tot spațiul de lucru.

Pentru cheile de payload pe care le duce fiecare eveniment, vezi referința pentru evenimentele de domeniu.

Selectează nodul Starea PR s-a schimbat. Cipurile de stare din inspector sunt singurul filtru pe care îl poate scrie interfața. Atinge oricare dintre merged, closed, approved, opened, reopened; trigger-ul se declanșează apoi doar când status-ul evenimentului corespunde unuia dintre ele. Dacă lași toate cipurile neselectate, nu există filtru.

Nu există un câmp de filtru JSON cu formă liberă. O cheie de filtru pe care payload-ul evenimentului nu o duce nu se potrivește niciodată, așa că nu scrie una manual împotriva unei chei pe care nu ai confirmat-o în referința pentru evenimentele de domeniu.

Selectează nodul Program ca să editezi când se declanșează. Câmpurile inspectorului se persistă așa cum le lași:

Câmp Descriere
Program (cron sau every:seconds) O expresie cron cu cinci câmpuri, precum 0 9 * * 1, sau un interval, precum every:86400. Un număr simplu este convertit în every:<n>.
Fus orar (opțional) O zonă IANA, precum Europe/Paris. Implicit UTC.
La rulări ratate Ce se face cu declanșările ratate cât timp serverul a fost oprit: Rulează o dată restrânge fiecare interval ratat într-o singură declanșare la repornire (implicit), Sari reia de la următorul interval viitor.

Linia de rezumat a dalei de pe canvas detaliază intervalul doar pentru forma every:<seconds>; o expresie cron apare doar ca „Program”.

Tragerea lui Webhook generează un token aleatoriu. Selectează nodul ca să copiezi calea POST /webhooks/<token> din inspector.

Tokenul este și secretul HMAC: cererea trebuie să poarte X-Hub-Signature-256: sha256=<hex>, unde hex-ul este HMAC-SHA256(body, token). O livrare care eșuează verificarea este respinsă și înregistrată în jurnal și nu poate fi reluată. Duplicatele sunt ignorate după cheia lor de deduplicare.

Fiecare start este propriul său nod în graf. Tragerea unui cablu din Program atașează doar Program; Rulare manuală poate urma o cale diferită (de exemplu un nod de condiție) înainte să se alăture aceleiași munci. O rulare intră prin startul care corespunde tipului ei de eveniment și sare peste subgrafurile care aparțin celorlalte porniri.

Un trigger activat al cărui tip de eveniment și filtru se potrivesc amândouă pornește o rulare cu payload-ul evenimentului ca payload de trigger al rulării — acesta este lucrul față de care se rezolvă {{key}} din promptul sau scriptul unui pas. Evenimentele care duc o cheie naturală sunt deduplicate, așa că același eveniment declanșat de două ori nu pornește două rulări.

Un șablon dezactivat este refuzat chiar și când trigger-ul lui se potrivește. Opt dintre cele treisprezece șabloane incluse vin dezactivate, așa că trigger-ele lor semănate se declanșează în gol până când activezi șablonul.

  • Condiționează doar calea manuală — leagă Rulare manuală printr-un nod de condiție, iar Program direct la muncă. Fiecare start își deține propriile cabluri.
  • Revizuiește fiecare PR nou — evenimentul PR publicat pe șablonul pr_review.
  • Curăță după o fuzionare — evenimentul Starea PR s-a schimbat, filtrat pe merged / closed / approved. Șablonul integrat pr_merged_cleanup ascultă deja astfel, plus tichet finalizat/anulat, SpaceDeleted și un program zilnic care este activat forțat la fiecare resemănare pentru că este colectare de gunoi.
  • Baleiere nocturnă — program 0 2 * * * cu un fus orar, pe un șablon al cărui prim nod este un script bash.
  • Reacționează la un sistem extern — un trigger de webhook, sistemul apelant semnându-și corpul cererii ca mai sus.