Dokumentation

Hooks

Automatiseringar på organisationsnivå som reagerar på plattformshändelser med instruktioner du skriver.

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

KategoriHändelser
UppgiftSkapad, status ändrad, slutförd, misslyckad
AgentStartad, slutförd, fel
RepositoryCommit pushad, branch skapad, pull request öppnad, uppdaterad eller mergad, issue öppnad, en kommentar som nämner Coroid
SprintSkapad, planering startad, startad, uppgift tillagd, uppgift borttagen, granskning startad, slutförd, avbruten
PlanFas startad, slutförd, misslyckad
SchemaKörning startad, körning slutförd, körning misslyckad
RapportStartad, slutförd, misslyckad
KvalitetKontroll startad, godkänd eller underkänd; olöst på egen hand
BefordranBegärd, godkänd, avvisad
ReleaseSkapad, kandidat ändrad, anteckningar ändrade, anteckningar godkända, omfattning ändrad, checklista slutförd, grind utvärderad, grind åsidosatt, godkänd, publicerad, återställd
DriftsättningKöad, körs, lyckad, misslyckad, avbruten, manuellt intygad, återställning manuellt intygad, hälsokontroll godkänd, hälsokontroll underkänd
SynkroniseringExtern källa uppdaterad
Slack och TelegramEtt meddelande som matchar automatiseringens filter

Händelser som dina egna system utlöser

KategoriHändelser
AnalysBeroende hittat, säkerhetsproblem hittat, analys slutförd
Extern driftsättningStartad, 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:

KategoriHändelser
UppgiftFas ändrad
AgentIteration, verktyg anropat
PlanSkapad, fas slutförd, slutgranskning startad, slutgranskning slutförd, före planens pull request
SchemaSkapad, aktiverad, pausad
SprintPlanering slutförd, uppgift slutförd, omfattning ändrad
ReleaseFörberedd, validerad
BefordranFöre befordrans pull request
KvalitetKontroll 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.

ArbeteBörjarSlutar
PlanFas startad: den första skickas när planens körning börjarSlutförd, misslyckad
SchemaKörning startadKörning slutförd, körning misslyckad
RapportStartadSlutförd, misslyckad
KvalitetskontrollKontroll startadGodkänd, underkänd, olöst på egen hand
BefordranBegärdGodkänd, avvisad
ReleaseSkapadPublicerad, å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ändelseSkickas närFält
Planfas startadPlanens körning börjar (dess första fas), och därefter när den första uppgiften i en annan fas startarplanId, plan (id, titel), phase (id, sekvens, titel), firstPhase, executionStartedAt
Planen slutförd eller misslyckadPlanens körning avslutas. En plan som misslyckas under planeringen skickar varkenplanId, plan, status, executionStartedAt
Schemakörning startadEn schemakörning startarscheduleId, runId, schedule (id, namn), run (utlösningsorsak, överordnad körning)
Schemakörning slutförd eller misslyckadKörningen avslutasSamma fält, status, och tasksCreated eller error
Rapportgenerering startadEn rapport börjar genereras. Om den pausas och återupptas behålls samma starttidreportId, report (id, typ, titel)
Rapport slutförd eller misslyckadRapporten sparas, eller så misslyckas den eller avbrytsSamma fält, och tokensUsed, costUsd och hasActionableFindings, eller error
Kvalitetskontroll startadEn kvalitetskontroll startarqualityRunId, check (ämne, utlösare, policyversion, commit)
Kvalitetskontroll godkänd eller underkändKontrollen fattar sitt beslutSamma fält, decision, redoCause, failedExpectationIds
Kvalitetsproblem som inte kunde lösas automatisktCoroid slutar försöka åtgärda det som kontrollen hittadequalityRunId, workItemType, workItemId, reason
Befordran begärdEn befordran skapaspromotionId, laneId, promotion (titel, status, brancher, pull request)
Befordran godkändBefordran mergas: godkänd i Coroid, tvångsmergad, mergad hos leverantören eller levererad i en releaseSamma fält, approval, approvedBy, forceReason
Befordran avvisadEn granskare begär ändringarSamma fält, reason, requestedBy, comment
Release publiceradReleasens första produktionsdriftsättning lyckasreleaseId, version, commitSha
Release återställdEn å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ällaHändelser
ArbetsflödeshändelseHändelser i Coroid, enligt tabellen ovan
GitHubPull request öppnad, uppdaterad eller mergad; ärende öppnat; en kommentar som nämner Coroid
SlackEtt meddelande som matchar automatiseringens filter
TelegramEtt meddelande som matchar automatiseringens filter, till exempel ett som börjar med /coroid
JiraEtt nytt ärende
DestinationVad som händer
HookKör dina instruktioner med skrivskyddad åtkomst, enligt beskrivningen på den här sidan
Kvalificera arbeteRegistrerar händelsen som en förfrågan. När kvalificeringen har godkänts skapar Coroid arbetet
Coroid CheckAvvecklad. 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.

P2P3

En pull request

Den kan inte göra en merge på egen hand eller göra en commit till din basgren.

Du godkänner

Det enda som skiljer automatiseringarna åt är vad som utlöser dem. Det som startas är en vanlig uppgift i det vanliga flödet, så den använder faktisk kapacitet och avslutas med en pull request som 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

MekanismUtlöses av
HookEn plattformshändelse
SchemaTid

Båda är automatiseringar och visas tillsammans i plattformen. Se Automatiseringar.