Forbind Semaphore til dine værktøjer

Administrer ressourcer, kør opgaver og workflows, og hent resultater via REST-API'et. Forbind indgående hændelser med webhooks.

Automatisering i et separat værktøj afbryder arbejdsgangen

Portaler, pipelines og infrastrukturværktøjer driver allerede arbejdet. Separat automatisering betyder gentagen opsætning, skift mellem brugerflader og manuel resultatindsamling.

Ét API til opsætning og eksekvering

Administrer SemaphoreProjekter, adgang og automatiseringskonfiguration
Udløs automatiseringOpgaver, workflows og hændelsesstyrede kørsler
Hent resultaterKørselsstatus, logge og eksekveringsoutput

Administrer Semaphore fra dine egne systemer

Opret og opdater projekter, adgang og automatiseringsressourcer via REST-API'et. Hold Semaphore synkroniseret med servicekataloget, onboardingprocessen eller infrastrukturværktøjerne.

Udløs automatisering, og følg resultatet

Forbind værktøjerne til samme automatisering

Gem operationen i en opgaveskabelon

Portalen starter samme job, som en ingeniør kan køre i brugerfladen.

Opgaveskabeloner

Udløs en sekvens af job

Forbind opgaver, data, godkendelser og resultatbaserede grene.

Workflows

Følg opgaven, som anmodningen startede

Gem det returnerede opgave-ID, og undersøg det registrerede resultat.

Revision og logfiler

REST-API og webhookintegrationsmuligheder

Diriger indgående hændelser til det rette job

Brug projektets webhookalias til at evaluere integrationsmatchere og vælge job, der accepterer hændelsen. Et integrationsspecifikt alias kalder én integration direkte og omgår dens matchere. Match repository-, branch- eller hændelsesfelter, når flere systemer deler et endpoint, og test både matchende og ikke-matchende anmodninger.

Map hændelsesdata til kørselsinput

Læs anmodningsheadere eller indholdsfelter med værdiudtrækkere, og map dem til miljøværdier eller understøttede opgaveparametre. Send eksempelvis udgivelsesversion, tjenestenavn eller anmodningsreference uden at genskabe det gemte job. Parametermapping skal passe til de prompts, opgaveskabelonen viser.

Autentificer API-kald og indgående webhooks

REST-API-kald bruger et personligt API-token og rettighederne fra dets Semaphore-konto. Webhook-integrationer har egne autentifikationsindstillinger, herunder GitHub- og Bitbucket-webhooks, Token, HMAC SHA-256 eller SHA-512 og BasicAuth. Konfigurer den metode, afsenderen understøtter, og hold anmodningslegitimation adskilt fra den infrastrukturlegitimation, jobbet bruger.

Administrer Semaphore fra dine egne systemer

REST-API'et omfatter projekter, repositories, inventarer, legitimationsoplysninger, variabelgrupper, opgaveskabeloner, tidsplaner og integrationer samt opgaveeksekvering og Pro Workflow-API'et. Provisioner automatiseringsressourcer fra din tjeneste, start en konfigureret operation, og læs derefter status og output. OpenAPI-referencen dokumenterer endpointparametre, anmodningsindhold og svarskemaer.

Følg opgaven, som anmodningen oprettede

En oprettet opgave er en eksekvering i kø, ikke en afsluttet eksekvering. Behold det id, som API'et returnerer, og poll de dokumenterede task-endpoints for status og output, så din tjeneste kan skelne mellem en fejlbehæftet anmodning, en ventende kørsel og et færdigt resultat — og kan føre en ingeniør direkte til det faktiske bevismateriale. Gå ikke ud fra noget om leveringen: en upstream-tjeneste kan forsøge igen efter en timeout, selv om den første anmodning nåede frem, så håndter dubletter, hvor handlingen har konsekvenser, og gør automatiseringen idempotent. At sende resultater videre til chat eller e-mail er en separat kapabilitet.

Forbind GitHub, Bitbucket og andre hændelseskilder

Integrationer understøtter GitHub- og Bitbucket-webhookautentifikation, tokens, HMAC SHA-256 eller SHA-512 og Basic Auth. Match indgående headere eller indholdsfelter, og udtræk derefter de værdier, det gemte job kræver. Brug REST-API'et, når kalderen også skal undersøge resultater eller administrere ressourcer.

FAQ

Bør jeg bruge REST-API'et eller en webhook-integration til at starte et job?

Brug en webhook-integration, når en ekstern hændelse skal vælge en foruddefineret opgaveskabelon og mappe anmodningsværdier til accepterede input. Brug REST-API'et, når applikationen kræver et mere eksplicit ressource- og eksekveringsforløb, såsom at starte en opgave og læse status. I begge tilfælde kører automatiseringen via Semaphores konfigurerede eksekveringsmodel. Vælg efter kalderens behov for at sende og følge data.

Hvad er forskellen på projektalias og integrationsspecifikt alias?

Et projekt-alias evaluerer de konfigurerede matchers på tværs af sine integrationer og kan starte dem, der matcher anmodningen. Et integrationsspecifikt alias henvender sig direkte til én integration uden at evaluere dens matchers. Det har betydning, hvis du forventer, at en regel for branch eller hændelsestype styrer eksekveringen. Vælg endpoint bevidst, og test både matchende og ikke-matchende payloads i stedet for at antage, at samme filter gælder for alle alias-stier.

Hvordan kan en webhook sende en udgivelsesversion eller miljøværdi?

Konfigurer ekstraktorer til at læse relevante anmodningsheadere eller felter i indholdet og mappe dem til dokumenterede miljøværdier eller opgaveparametre. Parameterdestinationer skal passe til de prompts, skabelonen accepterer. Hold mappingen præcis: en udgivelsesversion skal blive det tilsigtede input, ikke et ubegrænset kommandofragment. Valider værdien i automatiseringen, når dens betydning kræver det, og test manglende eller uventede felter før produktionsbrug.

Hvilken identitet og hvilke rettigheder bruger en API-anmodning?

Et API-token bruger rettighederne for sin Semaphore-bruger. Brug en identitet, hvis projektadgang svarer til integrationens tilsigtede handlinger, og beskyt tokenet, hvor kalderen gemmer det. API'et omgår ikke projektets autorisation. Konfigurer også den dokumenterede anmodningsautentifikation og eksponering af endpointet bevidst for webhook-integrationer. Hold kalderens autentifikation adskilt fra de legitimationsoplysninger, som den oprettede opgave bruger til infrastrukturen.

Hvordan skal tjenesten følge opgaven efter start?

Bevar det opgave-ID, den dokumenterede REST-API-operation returnerer, og brug de tilsvarende API-metoder til at undersøge tilstand og output. En vellykket anmodning betyder, at eksekveringen blev bestilt, ikke at infrastrukturopgaven blev fuldført korrekt. Tjenesten bør skelne mellem anmodningsfejl, ventende eller kørende opgaver og afsluttede resultater. Send ingeniører til opgaven, når de skal undersøge de faktiske eksekveringsoplysninger.

Er webhook-genforsøg garanteret kun at køre et job én gang?

Antag ikke garantier for præcis én eksekvering eller varig levering. En ekstern tjeneste kan gentage en anmodning efter timeout, selv om den første nåede Semaphore. Design dublethåndtering og beslutninger om genforsøg efter operationens konsekvenser, og gør den underliggende automatisering idempotent, hvor det er relevant. Bevar sammenhængen mellem den oprindelige hændelse og den kørsel, tjenesten følger, så ingeniører kan forstå gentagne eller usikre leveringer.

Hvor finder jeg Semaphore-API-specifikationen?

Referencen på dette websted viser Swagger/OpenAPI-dokumentet fra Semaphore-udgivelsen, så operationer, stier og skemaer svarer til en bestemt version frem for en håndskrevet opsummering. Gennemse efter ressource på /api-docs/, eller læs rå dokumentation, hvis du genererer en klient. Kontroller altid specifikationen for den anvendte version, da endpoints og anmodningsskemaer kan ændres mellem udgivelser.

Kræver en webhook-integration et internetvendt endpoint?

Det kaldende system skal kunne nå Semaphore-instansen, men det behøver ikke betyde offentligt internet. Privat netværk, VPN eller intern load balancer er nok, når kalderen kører indenfor. Vores egen matcher- og ekstraktortest brugte en loopback-lytter uden autentifikation, hvilket ikke er en model for et eksponeret endpoint. Konfigurer en understøttet autentifikationsmetode og begræns også netværkseksponeringen, når aliaset kan nås uden for det betroede netværk.

Hvordan tester jeg en integration, før et rigtigt system tilsluttes?

Ret først integrationen mod en ufarlig opgaveskabelon, og send derefter selv data med curl eller en anden HTTP-klient. Send indhold, der ikke matcher, og bekræft, at ingen opgave vises; send derefter matchende indhold, og bekræft, at præcis én opgave starter. Åbn opgavens Details-visning: integrationen registreres som kilde, og udtrukne værdier er synlige for kørslen. Det er samme forløb, vi brugte lokalt, og det fanger en forkert matchernøgle, før en ekstern tjeneste afhænger af den.

Kan jeg administrere Semaphore-ressourcer og køre workflows via API'et?

Ja. REST-API'et omfatter projekter, repositories, inventarer, legitimation, variabelgrupper, opgaveskabeloner og andre automatiseringsressourcer. Portalen eller infrastrukturtjenesten kan konfigurere dem, starte opgaver og læse eksekveringsstatus og output. Pro viser også workflowkørsler og godkendelser via API'et, så en CI/CD-pipeline kan starte en hel flertrinsoperation. Brug OpenAPI-referencen til endpointparametre og svarskemaer.