Gå til innholdet

Sett opp pipeline-utløsere

En utløser er det som starter en pipeline. Hver av dem er en node på lerretet, dratt inn fra Utløsere-delen av nodebiblioteket. Når du velger den noden, åpnes inspektøren dens til høyre — det finnes ingen alltid synlig utløserliste, ingen utløserfane og ingen utløserskjerm.

  1. Gå til Innstillinger → Arbeidsområde → Pipeline-maler.
  2. Trykk på blyanten på raden til malen for å åpne redigereren.
  3. Velg en utløsernode på lerretet. Panelet til høyre vises med innstillingene til den utløseren. Når ingenting er valgt, er panelet skjult.

Utløsere-delen av nodebiblioteket lister opp hver starttype som sin egen node: manuell, tidsplan, webhook og ett kort per domenehendelse. Søk etter merged, ticket eller typenavnet (PrMerged), og dra kortet over på lerretet. En ny mal viser også en spøkelsesflis Legg til en utløser ved inngangsankeret — velg fra den samme søkbare listen.

Utløseren settes inn med en gang. Nye automatiske utløsere opprettes deaktivert, slik at et slipp ikke starter en kjøring før du har konfigurert den. Bruk På-bryteren i inspektøren til å slå den på, eller søppelbøtteikonet til å slette den.

Slipp ned Manuell kjøring (eller velg den fra spøkelsesflisen) og slå på På i inspektøren dens. Det er dette som gjør at malen vises i kjøringsvelgeren. Det er ikke et spesialtilfelle — bryteren skriver en helt vanlig utløserrad med hendelsestypen manual. Den lagres umiddelbart; det er ingenting å lagre.

Den samme bryteren ligger bak Manuell kjøring i toppteksten til redigereren, der den står sammen med malens deklarerte inndata.

Disse hendelsene starter en kjøring:

Etikett i velgeren Hendelse
Ekstern PR åpnet ExternalPrDetected
PR publisert PullRequestPublished
PR-status endret PullRequestStatusChanged
PR sammenslått PrMerged
Melding mottatt MessageReceived
Sak opprettet TicketCreated
Sakstatus endret TicketStatusChanged
Sak tildelt TicketAssigned
Sak fullført TicketCompleted
Sak mislyktes TicketFailed
Sak avbrutt TicketCancelled
Budsjettgrense krysset BudgetThresholdCrossed
Arkiv lagt til RepoAdded
Møteopptak stoppet MeetingRecordingStopped
Ferdighet oppdatert SkillUpdated
Område slettet SpaceDeleted

Det er SpaceDeleted den innebygde pipelinen for worktree-opprydding lytter på: den bærer id-en til området som ble slettet, slik at kjøringen rydder opp i nøyaktig det områdets worktrees i stedet for å gå gjennom hele arbeidsområdet.

For hvilke nyttelastnøkler hver hendelse bærer, se referansen for domenehendelser.

Velg noden PR-status endret. Statusbrikkene i inspektøren er det eneste filteret du kan angi i brukergrensesnittet. Trykk på en av merged, closed, approved, opened eller reopened; utløseren utløses da bare når hendelsens status samsvarer med én av dem. Hvis ingen brikke er valgt, betyr det ingen filtrering.

Det finnes ikke noe fritekstfelt for JSON-filtre. En filternøkkel som hendelsens nyttelast ikke bærer, samsvarer aldri, så ikke skriv inn en slik nøkkel for hånd med mindre du har bekreftet den i referansen for domenehendelser.

Velg noden Tidsplan for å redigere når den utløses. Feltene i inspektøren lagres slik du forlater dem:

Felt Beskrivelse
Tidsplan (cron eller every:seconds) Et cron-uttrykk med fem felt, for eksempel 0 9 * * 1, eller et intervall som every:86400. Et bart tall tvinges til every:<n>.
Tidssone (valgfritt) En IANA-sone som Europe/Paris. Standard er UTC.
Ved tapte kjøringer Hva som skal gjøres med utløsninger som ble tapt mens serveren var nede: Kjør én gang slår sammen alle tapte tidsluker til én utløsning ved omstart (standard), Hopp over gjenopptar ved neste framtidige tidsluke.

Oppsummeringslinjen på lerretets flis skriver bare ut intervallet for formen every:<seconds>; et cron-uttrykk vises bare som «Tidsplan».

Når du slipper ned Webhook, opprettes et tilfeldig token. Velg noden for å kopiere stien POST /webhooks/<token> fra inspektøren.

Tokenet er også HMAC-hemmeligheten: forespørselen må ha X-Hub-Signature-256: sha256=<hex>, der hex-verdien er HMAC-SHA256(body, token). En levering som ikke består verifiseringen, avvises og loggføres og kan ikke spilles av på nytt. Duplikater ignoreres via dedupe-nøkkelen sin.

Hver start er sin egen node i grafen. Å trekke en ledning fra Tidsplan kobler bare til Tidsplan; Manuell kjøring kan ta en annen vei (for eksempel via en betingelsesnode) før den går inn i det samme arbeidet. En kjøring går inn ved den starten som samsvarer med hendelsestypen sin, og hopper over delgrafer som tilhører de andre startene.

En aktivert utløser der både hendelsestypen og filteret samsvarer, starter en kjøring med hendelsens nyttelast som kjøringens utløsernyttelast — det er denne {{key}} i et stegs prompt eller skript løses mot. Hendelser som bærer en naturlig nøkkel, dedupliseres, slik at den samme hendelsen som utløses to ganger, ikke starter to kjøringer.

En deaktivert mal avvises selv når utløseren dens samsvarer. Åtte av de tretten innebygde malene leveres deaktivert, så utløserne som er sådd inn, fyrer av uten at noe tar imot, helt til du slår malen på.

  • Port bare den manuelle veien — koble Manuell kjøring gjennom en betingelsesnode, og Tidsplan rett til arbeidet. Hver start eier sine egne ledninger.
  • Gå gjennom hver nye PR — hendelsen PR publisert på malen pr_review.
  • Rydd opp etter en sammenslåing — hendelsen PR-status endret, filtrert til merged / closed / approved. Den innebygde malen pr_merged_cleanup lytter allerede på denne måten, i tillegg til sak fullført/avbrutt, SpaceDeleted og en daglig tidsplan som tvinges aktivert ved hver ny såing fordi den er søppelsamling.
  • Nattlig gjennomkjøring — tidsplan 0 2 * * * med en tidssone, på en mal der den første noden er et bash-skript.
  • Reager på et eksternt system — en webhook-utløser, der det kallende systemet signerer forespørselsteksten som beskrevet over.