Tovább a tartalomhoz

Pipeline-eseményindítók beállítása

Az eseményindító az, ami elindít egy pipeline-t. Mindegyik egy csomópont a vásznon, amelyet a csomópontkönyvtár Triggerek szakaszából húzhat be. Ha kijelöli ezt a csomópontot, a jobb oldalon megnyílik a vizsgálója — nincs mindig látható eseményindítólista, nincs eseményindítók füle és nincs eseményindítók képernyő.

Eseményindító vizsgálójának megnyitása

Szekció neve “Eseményindító vizsgálójának megnyitása”
  1. Nyissa meg a Beállítások → Munkaterület → Pipeline-sablonok oldalt.
  2. Nyomja meg a ceruzát a sablon sorában a szerkesztő megnyitásához.
  3. Jelöljön ki egy eseményindító-csomópontot a vásznon. Megjelenik a jobb oldali panel az adott eseményindító beállításaival. Ha nincs semmi kijelölve, a panel rejtve van.

A csomópontkönyvtár Triggerek szakasza minden indítási módot saját csomópontjaként sorol fel: kézi, ütemezett, webhook, valamint domaineseményenként egy kártya. Keressen rá a merged, a ticket kifejezésre vagy a típus nevére (PrMerged), és húzza a kártyát a vászonra. Az új sablon a belépési pontnál egy Trigger hozzáadása szellemcsempét is mutat — válasszon ugyanabból a kereshető listából.

Az eseményindító azonnal bekerül. Az új automatikus eseményindítók letiltva jönnek létre, így egy ledobás nem indít futtatást, mielőtt beállítaná. Az Engedélyezve kapcsolóval a vizsgálóban bekapcsolhatja, a kuka ikonnal pedig törölheti.

Húzza be a Kézi futtatás csomópontot (vagy válassza ki a szellemcsempéről), és kapcsolja be az Engedélyezve opciót a vizsgálójában. Ez az, amitől a sablon megjelenik a futtatásválasztóban. Ez nem különleges eset — a kapcsoló egy közönséges eseményindító-sort ír, amelynek eseménytípusa manual. Azonnal mentődik; nincs mit elmenteni.

Ugyanez a kapcsoló áll a szerkesztő fejlécében a Kézi futtatás mögött, ahol a sablon deklarált bemenetei mellett helyezkedik el.

Az alábbi események indítanak futtatást:

Választó címkéje Esemény
Külső PR megnyitva ExternalPrDetected
PR közzétéve PullRequestPublished
PR állapota változott PullRequestStatusChanged
PR összefésülve PrMerged
Üzenet érkezett MessageReceived
Jegy létrehozva TicketCreated
Jegy állapota megváltozott TicketStatusChanged
Jegy hozzárendelve TicketAssigned
Jegy befejezve TicketCompleted
Jegy sikertelen TicketFailed
Jegy megszakítva TicketCancelled
Költségkeret-küszöb átlépve BudgetThresholdCrossed
Tároló hozzáadva RepoAdded
Értekezlet-felvétel leállítva MeetingRecordingStopped
Készség frissítve SkillUpdated
Tér törölve SpaceDeleted

A SpaceDeleted az, amire a beépített worktree-takarító pipeline figyel: hordozza a törölt tér azonosítóját, így a futtatás pontosan annak a térnek a worktree-jeit veszi vissza, ahelyett hogy az egész munkaterületet végigpásztázná.

Az egyes események által hordozott hasznos teher kulcsaihoz lásd a domainesemények referenciát.

Jelölje ki a PR állapota változott csomópontot. A vizsgáló állapotcímkéi az egyetlen szűrő, amelyet a felület létre tud hozni. Koppintson a merged, closed, approved, opened, reopened bármelyikére; az eseményindító ezután csak akkor lép működésbe, amikor az esemény status értéke valamelyikkel egyezik. Ha minden címke kijelöletlen, az a szűrő hiányát jelenti.

Nincs szabad formátumú JSON-szűrőmező. Egy olyan szűrőkulcs, amelyet az esemény hasznos terhe nem hordoz, soha nem egyezik, ezért ne írjon kézzel olyat olyan kulcs ellen, amelyet nem igazolt a domainesemények referenciájában.

Válassza ki az Ütemezés csomópontot, hogy szerkeszthesse, mikor lépjen működésbe. A vizsgáló mezői úgy maradnak meg, ahogy hagyja őket:

Mező Leírás
Ütemezés (cron vagy every:seconds) Egy ötmezős cron-kifejezés, például 0 9 * * 1, vagy egy intervallum, például every:86400. A csupasz szám every:<n> formára alakul.
Időzóna (nem kötelező) Egy IANA-zóna, például Europe/Paris. Alapértelmezés: UTC.
Elmulasztott futtatásoknál Mi történjen a szerver leállása alatt kimaradt indításokkal: az Egyszer futtatás minden kimaradt időpontot egyetlen indításba von össze újraindításkor (ez az alapértelmezés), a Kihagyás pedig a következő jövőbeli időponttól folytatja.

A vásznon lévő csempe összegző sora csak az every:<seconds> forma esetén írja ki az intervallumot; egy cron-kifejezés csak „Ütemezés” formában jelenik meg.

A Webhook beejtésével egy véletlenszerű token jön létre. Jelölje ki a csomópontot, hogy a vizsgálóból kimásolja a POST /webhooks/<token> útvonalat.

A token egyben a HMAC titkos kulcs is: a kérésnek tartalmaznia kell az X-Hub-Signature-256: sha256=<hex> fejlécet, ahol a hex érték HMAC-SHA256(body, token). Az ellenőrzésen megbukó kézbesítés elutasításra kerül, naplózódik, és nem játszható vissza. A duplikátumokat a deduplikációs kulcsuk alapján a rendszer figyelmen kívül hagyja.

Minden indítás a saját gráfcsomópontja. Ha vezetéket húz az Ütemezés csomópontból, az csak az Ütemezést kapcsolja be; a Kézi futtatás más útvonalon is haladhat (például egy feltételcsomóponton át), mielőtt csatlakozna ugyanahhoz a munkához. Egy futtatás abba az indításba lép be, amelyik az eseménytípusával egyezik, és kihagyja a többi indításhoz tartozó részgráfokat.

Hogyan jut el egy eseményindító egy futtatásig

Szekció neve “Hogyan jut el egy eseményindító egy futtatásig”

Egy engedélyezett eseményindító, amelynek eseménytípusa és szűrője is egyezik, elindít egy futtatást úgy, hogy az esemény hasznos terhe lesz a futtatás eseményindító-hasznos terhe — erre oldódik fel a {{key}} egy lépés promptjában vagy szkriptjében. A természetes kulcsot hordozó események deduplikáltak, így ugyanazon esemény kétszeri kiváltódása nem indít két futtatást.

Egy letiltott sablon akkor is elutasításra kerül, ha az eseményindítója egyezik. A tizenhárom beépített sablon közül nyolc letiltva érkezik, így a hozzájuk tartozó kezdeti eseményindítók a semmibe sülnek el, amíg be nem kapcsolja a sablont.

  • Csak a kézi útvonalat kapuzza — vezesse a Kézi futtatás csomópontot egy feltételcsomóponton át, az Ütemezést pedig egyenesen a munkához. Minden indítás a saját vezetékeit birtokolja.
  • Minden új PR átnézése — a PR közzétéve esemény a pr_review sablonon.
  • Takarítás összefésülés után — a PR állapota változott esemény, merged / closed / approved értékre szűrve. A beépített pr_merged_cleanup sablon már így figyel, emellett a jegy befejezve/megszakítva eseményekre, a SpaceDeleted eseményre, valamint egy napi ütemezésre, amelyet minden újratelepítéskor kényszerítetten engedélyeznek, mert szemétgyűjtés.
  • Éjszakai átvizsgálás — 0 2 * * * ütemezés időzónával, olyan sablonon, amelynek első csomópontja egy bash-szkript.
  • Reagálás külső rendszerre — webhook-eseményindító, ahol a hívó rendszer a fentiek szerint aláírja a kérés törzsét.