En hook reagerar på något som händer i Coroid. Du väljer en händelse, skriver instruktioner på vanlig svenska och hooken körs när händelsen inträffar.
Hitta dem i mjukvarufabriken under Automatiseringar.
Skapa en i Nytt arbete: välj Automation och sedan När något händer. Nytt arbete innehåller händelserna från GitHub och Coroids händelser. Se Automatiseringar.
Händelser du kan reagera på
En hook körs bara för en händelse som något skickar. Coroid skickar själv de flesta av händelserna nedan. Några utlöses av dina egna system. Alla andra händelser är reserverade: de visas inte i redigeraren, och det går inte att skapa en ny hook för dem. Om en hook har sparats för en reserverad händelse markerar redigeraren och listan den som att den aldrig kommer att köras. Den tas inte bort.
Händelser som Coroid skickar
| Kategori | Händelser |
|---|---|
| Uppgift | Skapad, status ändrad, slutförd, misslyckad |
| Agent | Startad, slutförd, fel |
| Repository | Commit pushad, branch skapad, pull request öppnad, uppdaterad eller mergad, issue öppnad, en kommentar som nämner Coroid |
| Sprint | Skapad, planering startad, startad, uppgift tillagd, uppgift borttagen, granskning startad, slutförd, avbruten |
| Plan | Fas startad, slutförd, misslyckad |
| Schema | Körning startad, körning slutförd, körning misslyckad |
| Rapport | Startad, slutförd, misslyckad |
| Kvalitet | Kontroll startad, godkänd eller underkänd; olöst på egen hand |
| Befordran | Begärd, godkänd, avvisad |
| Release | Skapad, kandidat ändrad, anteckningar ändrade, anteckningar godkända, omfattning ändrad, checklista slutförd, grind utvärderad, grind åsidosatt, godkänd, publicerad, återställd |
| Driftsättning | Köad, körs, lyckad, misslyckad, avbruten, manuellt intygad, återställning manuellt intygad, hälsokontroll godkänd, hälsokontroll underkänd |
| Synkronisering | Extern källa uppdaterad |
| Slack och Telegram | Ett meddelande som matchar automatiseringens filter |
Händelser som dina egna system utlöser
| Kategori | Händelser |
|---|---|
| Analys | Beroende hittat, säkerhetsproblem hittat, analys slutförd |
| Extern driftsättning | Startad, slutförd, misslyckad |
Coroid skickar inte dessa. En CI-pipeline, en skanner eller ett annat av dina system
utlöser hooken med dess ID genom att anropa POST /api/v1/organizations/hooks/:id/dispatch
med nyckeln till ett servicekonto
som har omfattningen hooks:dispatch . Hooken körs för den händelse den sparades
med. I redigeraren visas dessa händelser under ”Utlöses av dina egna system”.
Reserverade händelser
De här händelserna skickas eller utlöses inte än, så de erbjuds inte i redigeraren:
| Kategori | Händelser |
|---|---|
| Uppgift | Fas ändrad |
| Agent | Iteration, verktyg anropat |
| Plan | Skapad, fas slutförd, slutgranskning startad, slutgranskning slutförd, före planens pull request |
| Schema | Skapad, aktiverad, pausad |
| Sprint | Planering slutförd, uppgift slutförd, omfattning ändrad |
| Release | Förberedd, validerad |
| Befordran | Före befordrans pull request |
| Kvalitet | Kontroll otillgänglig; reparation startad eller försökt; omvalidering startad; samsyn uppnådd |
När arbete börjar och slutar
Planer, scheman, rapporter, kvalitetskontroller, befordringar och releaser skickar en händelse när de börjar och en när de slutar. En hook kan reagera på hur arbetet avslutades, och ett av dina system kan mäta hur lång tid det tog.
| Arbete | Börjar | Slutar |
|---|---|---|
| Plan | Fas startad: den första skickas när planens körning börjar | Slutförd, misslyckad |
| Schema | Körning startad | Körning slutförd, körning misslyckad |
| Rapport | Startad | Slutförd, misslyckad |
| Kvalitetskontroll | Kontroll startad | Godkänd, underkänd, olöst på egen hand |
| Befordran | Begärd | Godkänd, avvisad |
| Release | Skapad | Publicerad, återställd |
Var och en av de här händelserna registrerar tidpunkten då den inträffade i occurredAt. En händelse
som anger hur arbetet avslutades registrerar också när arbetet började i
startedAt, och hur lång tid det tog i durationMs. Det startedAt är
occurredAt för starthändelsen, så de två matchar alltid. Tiden då arbetet var
pausat räknas in i varaktigheten.
Varje händelse skickas en gång, när ändringen sparas. En ändring som ångras skickar ingenting, och ett nytt försök skickar inte samma händelse igen. En sluthändelse skickas bara för arbete som har startat: en testsimulering av ett schema skickar ingenting, och det gör inte heller en rapport som avbryts innan den har startat.
Det här innehåller varje händelse, utöver tidsangivelserna:
| Händelse | Skickas när | Fält |
|---|---|---|
| Planfas startad | Planens körning börjar (dess första fas), och därefter när den första uppgiften i en annan fas startar | planId, plan (id, titel), phase (id, sekvens, titel), firstPhase, executionStartedAt |
| Planen slutförd eller misslyckad | Planens körning avslutas. En plan som misslyckas under planeringen skickar varken | planId, plan, status, executionStartedAt |
| Schemakörning startad | En schemakörning startar | scheduleId, runId, schedule (id, namn), run (utlösningsorsak, överordnad körning) |
| Schemakörning slutförd eller misslyckad | Körningen avslutas | Samma fält, status, och tasksCreated eller error |
| Rapportgenerering startad | En rapport börjar genereras. Om den pausas och återupptas behålls samma starttid | reportId, report (id, typ, titel) |
| Rapport slutförd eller misslyckad | Rapporten sparas, eller så misslyckas den eller avbryts | Samma fält, och tokensUsed, costUsd och hasActionableFindings, eller error |
| Kvalitetskontroll startad | En kvalitetskontroll startar | qualityRunId, check (ämne, utlösare, policyversion, commit) |
| Kvalitetskontroll godkänd eller underkänd | Kontrollen fattar sitt beslut | Samma fält, decision, redoCause, failedExpectationIds |
| Kvalitetsproblem som inte kunde lösas automatiskt | Coroid slutar försöka åtgärda det som kontrollen hittade | qualityRunId, workItemType, workItemId, reason |
| Befordran begärd | En befordran skapas | promotionId, laneId, promotion (titel, status, brancher, pull request) |
| Befordran godkänd | Befordran mergas: godkänd i Coroid, tvångsmergad, mergad hos leverantören eller levererad i en release | Samma fält, approval, approvedBy, forceReason |
| Befordran avvisad | En granskare begär ändringar | Samma fält, reason, requestedBy, comment |
| Release publicerad | Releasens första produktionsdriftsättning lyckas | releaseId, version, commitSha |
| Release återställd | En återställning ersätter releasen i en miljö | releaseId, version, rolledBackToReleaseId |
Händelser om arbete i ett projekt innehåller också projectId, så en hook som begränsats till ett
projekt utlöses bara för det projektet. Om en hook skapade arbetet räknas dessa händelser
in i hookens kedjedjup.
Utlösare och destinationer
Varje automatisering har en utlösarkälla, där händelserna kommer ifrån, och en destination som avgör vad som händer när en händelse utlöses. Två av destinationerna omvandlar en händelse till arbete.
| Utlösarkälla | Händelser |
|---|---|
| Arbetsflödeshändelse | Händelser i Coroid, enligt tabellen ovan |
| GitHub | Pull request öppnad, uppdaterad eller mergad; ärende öppnat; en kommentar som nämner Coroid |
| Slack | Ett meddelande som matchar automatiseringens filter |
| Telegram | Ett meddelande som matchar automatiseringens filter, till exempel ett som börjar med /coroid |
| Jira | Ett nytt ärende |
| Destination | Vad som händer |
|---|---|
| Hook | Kör dina instruktioner med skrivskyddad åtkomst, enligt beskrivningen på den här sidan |
| Kvalificera arbete | Registrerar händelsen som en förfrågan. När kvalificeringen har godkänts skapar Coroid arbetet |
| Coroid Check | Avvecklad. Granskning av varje pull request i Coroid anges i Kvalitetskontroll; befintliga automatiseringar pausades |
GitHub-händelser kräver GitHub-appen. En kommentar som nämner Coroid räknas bara om författaren har skrivbehörighet till repositoryt. Se GitHub.
En uppgift från Kvalificera arbete startar automatiskt endast om händelsens författare är betrodd: författaren till en GitHub pull request, ett ärende eller en kommentar som har skrivbehörighet till repositoryt. Författare på Slack, Telegram och Jira är aldrig betrodda, så deras uppgifter väntar på att någon ska starta dem. Se När arbetet startar.
Nya Jira-ärenden når Coroid endast via dess Jira-webhook. Den tar bara emot leveranser signerade med webhook-hemligheten som konfigurerats för Coroid, endast för nya ärenden och endast när ärendets Jira-projektnyckel matchar ett Coroid-projekt. På coroid.ai är Jira-webhooken ännu inte konfigurerad, så en Jira-utlösare får inga händelser; importera Jira-ärenden i stället. Där webhooken är konfigurerad skickas ett nytt ärende till automatiseringarna för Jira-utlösaren, till exempel Jira-förfrågningskällan i Kvalitetskontroll, som registrerar ärenden av de typer och med de prioriteter du väljer för kvalificering. Om ingen automatisering finns för utlösaren registreras inget ärende. Arbete från Jira startar aldrig automatiskt. Se Ärendehanteringssystem.
Skrivskyddat som standard
Hookar analyserar och rapporterar. De kan skapa uppföljningsarbete, men ändrar inte din kod direkt.
Det är den här standardinställningen som gör dem säkra att börja använda. En automatisering som redigerar kod som svar på en händelse agerar när tillsyn är som minst sannolik. En hook som öppnar en uppgift ger samma resultat via det vanliga flödet — specifikation, plan, verifiering, granskning, pull request.
- SchemaTid
- Händelsestyrd automatiseringNågot händer
En vanlig uppgift
Specifikation, planering, bygge, verifiering och granskning. Använder en agentplats – ge uppgiften lägre prioritet.
P2P3En pull request
Den kan inte göra en merge på egen hand eller göra en commit till din basgren.
Du godkänner
Skriv bra instruktioner
Hook-instruktioner bearbetas av en modell, så skriv dem som instruktioner till en kollega, inte som kod. Kvalitetskraven är desamma som för en specifikation: ange vad som ska granskas, vad som är viktigt och vad som ska göras.
Var tydlig med när inget ska göras. Annars hittar en hook alltid något att säga varje gång den körs, och hookar som alltid utlöses är sådana som folk slutar läsa.
Skyddsåtgärder
Det finns tre skydd eftersom händelsestyrd automatisering kan fallera på förutsägbara sätt:
Frekvensbegränsningar. Per minut, timme och dag, konfigurerbara för varje hook. En hook på en händelse med hög frekvens kan annars utlösas hundratals gånger under en intensiv merge.
Kedjedjup. Hookar kan utlösa händelser som i sin tur utlöser hookar. Ett maximalt kedjedjup hindrar att det blir en loop.
Verktygsbehörigheter. Vad en hook får åtkomst till är styrt — skrivskyddad åtkomst, MCP-anrop och skapande av uppgifter hanteras separat.
Behörigheter
Endast ägare och administratörer kan skapa, ändra, testa eller ta bort en hook; alla medlemmar kan se hookar och deras körningshistorik. Eftersom en hook har åtkomst på organisationsnivå är den här skillnaden avsiktlig.
Håll koll på hookarna
Varje hooks sida i fabriken visar dess körningar och vad den gjort under de senaste 30 dagarna: körningar, fel och kostnad. Varje automatiseringskörning finns också under Inställningar → Aktivitet, filtrerad på automatisering. Kontrollera körningarna efter att du aktiverat en ny hook — risken är inte ett fel, utan att den utlöses hela tiden utan att producera något som någon agerar på.
Hookar och scheman
| Mekanism | Utlöses av |
|---|---|
| Hook | En plattformshändelse |
| Schema | Tid |
Båda är automatiseringar och visas tillsammans i plattformen. Se Automatiseringar.