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”- Nyissa meg a Beállítások → Munkaterület → Pipeline-sablonok oldalt.
- Nyomja meg a ceruzát a sablon sorában a szerkesztő megnyitásához.
- 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.
Eseményindító hozzáadása
Szekció neve “Eseményindító hozzáadása”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.
Kézi futtatások engedélyezése
Szekció neve “Kézi futtatások engedélyezése”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.
Eseményre
Szekció neve “Eseményre”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.
Eseményindító szűrése
Szekció neve “Eseményindító szűrése”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.
Ütemezésre
Szekció neve “Ütemezésre”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.
Webhookon keresztül
Szekció neve “Webhookon keresztül”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.
Hasznos minták
Szekció neve “Hasznos minták”- 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_reviewsablonon. - 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ítettpr_merged_cleanupsablon már így figyel, emellett a jegy befejezve/megszakítva eseményekre, aSpaceDeletedesemé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.
Kapcsolódó útmutatók
Szekció neve “Kapcsolódó útmutatók”- Pipeline-sablon létrehozása
- Pipeline kézi futtatása
- Pipeline-futtatások figyelése
- Domainesemények referenciája