Povežite Semaphore sa svojim alatima

Upravljajte resursima, pokrećite zadatke i tokove rada i preuzimajte rezultate preko REST API-ja. Povežite dolazne događaje vebhukovima.

Automatizacija u odvojenom alatu prekida tok rada

Portali, konvejeri i infrastrukturni alati već pokreću rad. Odvojena automatizacija znači ponavljanje podešavanja, menjanje interfejsa i ručno prikupljanje rezultata.

Jedan API za podešavanje i izvršavanje

Upravljajte Semaphore-omProjekti, pristup i konfiguracija automatizacije
Pokrenite automatizacijuZadaci, tokovi rada i izvršavanja pokrenuta događajima
Preuzmite rezultateStatus, dnevnici i izlaz izvršavanja

Pokrenite automatizaciju i pratite rezultat

Povežite alate sa istom automatizacijom

Čuvajte operaciju u šablonu zadatka

Vaš portal pokreće isti posao koji inženjer može pokrenuti u interfejsu.

Šabloni zadataka

Pokrenite niz poslova

Povežite zadatke, podatke, odobrenja i grane prema rezultatu.

Tokovi rada

Pratite zadatak koji je zahtev pokrenuo

Sačuvajte vraćeni ID zadatka i pregledajte zabeleženi rezultat.

Revizija i evidencije

REST API i opcije integracije vebhukova

Usmerite dolazne događaje ka pravom poslu

Koristite projektni alijas vebhuka za proveru uslova integracija i izbor poslova koji prihvataju događaj. Alijas pojedinačne integracije poziva jednu integraciju direktno i zaobilazi njene uslove. Uporedite polja repozitorijuma, grane ili događaja kada više sistema deli krajnju tačku i testirajte zahteve koji odgovaraju i ne odgovaraju.

Mapirajte sadržaj događaja na ulaze izvršavanja

Čitajte zaglavlja zahteva ili polja tela ekstraktorima vrednosti i mapirajte ih na vrednosti okruženja ili podržane parametre zadatka. Prosledite verziju izdanja, naziv servisa ili referencu zahteva bez ponovnog kreiranja sačuvanog posla. Mapiranje parametara mora odgovarati upitima koje šablon zadatka izlaže.

Autentifikujte API pozive i dolazne vebhukove

REST API pozivi koriste lični API token i dozvole njegovog Semaphore naloga. Integracije vebhukova imaju sopstvena podešavanja autentifikacije, uključujući GitHub i Bitbucket vebhukove, Token, HMAC SHA-256 ili SHA-512 i BasicAuth. Podesite metod koji pošiljalac podržava i odvojite pristupne podatke zahteva od infrastrukturnih podataka koje posao koristi.

Upravljajte Semaphore-om iz sopstvenih sistema

REST API obuhvata projekte, repozitorijume, inventare, pristupne podatke, grupe promenljivih, šablone zadataka, rasporede i integracije, kao i izvršavanje zadataka i Pro API tokova rada. Pripremite resurse automatizacije iz svog servisa, pokrenite podešenu operaciju, pa čitajte status i izlaz. OpenAPI referenca opisuje parametre krajnjih tačaka, tela zahteva i šeme odgovora.

Pratite zadatak koji je zahtev kreirao

Kreiran zadatak je izvršavanje u redu čekanja, a ne završeno izvršavanje. Sačuvajte identifikator koji API vraća i anketirajte dokumentovane endpoint-e zadataka za status i izlaz, kako bi vaš servis mogao da razlikuje grešku zahteva, izvršavanje koje čeka i završeni ishod, i kako bi inženjera mogao da uputi direktno na stvarne dokaze. Ne pretpostavljajte ništa o dostavi: uzvodni servis može ponoviti zahtev nakon isteka vremena iako je prvi zahtev stigao, pa obradite duplikate tamo gde operacija ima posledice i učinite automatizaciju idempotentnom. Slanje rezultata van sistema u čet ili e-poštu je zasebna mogućnost.

Povežite GitHub, Bitbucket i druge izvore događaja

Integracije podržavaju GitHub i Bitbucket autentifikaciju vebhukova, tokene, HMAC SHA-256 ili SHA-512 i Basic Auth. Uporedite dolazna zaglavlja ili polja tela, pa izdvojite vrednosti potrebne sačuvanom poslu. Koristite REST API kada pozivalac treba i da pregleda rezultate ili upravlja resursima.

FAQ

Da li za pokretanje posla da koristim REST API ili integraciju vebhuka?

Koristite integraciju vebhuka kada spoljni događaj treba da izabere unapred definisan šablon zadatka i mapira vrednosti zahteva na prihvaćene ulaze. Koristite REST API kada aplikaciji treba jasniji proces resursa i izvršavanja, poput pokretanja zadatka i čitanja statusa. U oba slučaja automatizacija koristi podešeni model izvršavanja Semaphore-a. Birajte prema tome šta pozivalac treba da pošalje i prati.

Koja je razlika između alijasa projekta i pojedinačne integracije?

Alijas projekta procenjuje konfigurisane matchere kroz sve svoje integracije i može pokrenuti one koje odgovaraju zahtevu. Alijas specifičan za integraciju obraća se jednoj integraciji direktno, bez procene njenih matchera. To je važno ako očekujete da pravilo za granu ili tip događaja kontroliše izvršavanje. Namerno izaberite endpoint i testirajte i payload-e koji odgovaraju i one koji ne odgovaraju, umesto da pretpostavljate da isti filter važi za svaku putanju alijasa.

Kako vebhuk može da prosledi verziju izdanja ili vrednost okruženja?

Podesite ekstraktore da čitaju odgovarajuća zaglavlja zahteva ili polja tela i mapiraju ih na dokumentovane vrednosti okruženja ili parametre zadatka. Odredišta parametara moraju odgovarati ulazima koje šablon prihvata. Mapiranje neka bude precizno: verzija izdanja treba da postane predviđeni ulaz, a ne neograničen fragment komande. Proverite vrednost u automatizaciji kada njeno značenje to zahteva i testirajte nedostajuća ili neočekivana polja pre produkcione upotrebe.

Koji identitet i dozvole koristi API zahtev?

API token deluje sa dozvolama svog Semaphore korisnika. Koristite identitet čiji pristup projektima odgovara operacijama koje integracija treba da izvršava i zaštitite token gde god ga pozivalac čuva. API nije način da se zaobiđe autorizacija na nivou projekta. Za webhook integracije namerno konfigurišite i dokumentovanu autentifikaciju zahteva i izloženost endpoint-a. Autentifikaciju pozivaoca držite odvojeno od akreditiva koje dobijeni zadatak koristi za pristup infrastrukturi.

Kako servis treba da prati zadatak posle pokretanja?

Za REST API proces sačuvajte identifikator zadatka koji vraća dokumentovana operacija i koristite odgovarajuće API metode za pregled stanja i izlaza. Uspešan zahtev znači da je izvršavanje zatraženo, a ne da je infrastrukturni rad uspešno završen. Servis treba da razlikuje greške zahteva, zadatke na čekanju ili u izvršavanju i završene ishode. Uputite inženjere na zadatak kada treba da istraže stvarne podatke izvršavanja.

Da li ponovni pokušaji webhook-a garantuju da se posao pokrene samo jednom?

Ne pretpostavljajte izvršavanje tačno jednom niti garancije trajne dostave. Spoljni servis može ponoviti zahtev posle isteka vremena iako je prvi zahtev stigao u Semaphore. Osmislite obradu duplikata i odluke o ponavljanju prema posledicama operacije i učinite osnovnu automatizaciju idempotentnom gde je primereno. Sačuvajte vezu između izvornog događaja i izvršavanja koje servis prati kako bi inženjeri razumeli ponovljene ili neizvesne dostave.

Gde mogu da pronađem Semaphore API specifikaciju?

Referenca na ovom sajtu prikazuje Swagger/OpenAPI dokument objavljen uz Semaphore izdanje, pa operacije, putanje i šeme odgovaraju određenoj verziji, a ne ručno pisanom sažetku. Pregledajte resurse na /api-docs/ ili čitajte sirovi dokument ako iz njega generišete klijenta. Uvek proverite specifikaciju verzije koju stvarno koristite jer krajnje tačke i šeme zahteva mogu menjati izdanja.

Da li integraciji vebhuka treba javno dostupna krajnja tačka?

Pozivajući sistem mora pristupiti Semaphore instanci, ali to ne mora značiti javni internet. Privatna mreža, VPN ili interni balanser dovoljni su kada pozivalac radi unutar njih. Naša provera uslova i ekstraktora koristila je samo loopback sa isključenom autentifikacijom, što nije model za izloženu krajnju tačku. Kad god je alijas dostupan van pouzdane mreže, podesite podržanu autentifikaciju i ograničite izloženost i na mrežnom nivou.

Kako da testiram integraciju pre povezivanja stvarnog sistema?

Prvo usmerite integraciju na bezopasan šablon zadatka, pa sami pošaljite sadržaje zahteva pomoću curl-a ili drugog HTTP klijenta. Pošaljite telo koje ne odgovara uslovima i potvrdite da nema zadatka, zatim odgovarajuće telo i potvrdite da se pokreće tačno jedan zadatak. Otvorite njegov prikaz Details: on beleži integraciju kao izvor, a izdvojene vrednosti su vidljive izvršavanju. Isti niz smo koristili lokalno; otkriva pogrešan ključ uslova pre nego što se spoljni servis osloni na njega.

Mogu li preko API-ja da upravljam Semaphore resursima i pokrećem tokove rada?

Da. REST API obuhvata projekte, repozitorijume, inventare, pristupne podatke, grupe promenljivih, šablone zadataka i druge resurse automatizacije. Portal ili infrastrukturni servis može ih podešavati, pokretati zadatke i čitati status i izlaz. Pro takođe izlaže izvršavanja tokova rada i odobrenja kroz API, pa CI/CD konvejer može pokrenuti celu višekoračnu operaciju. Koristite OpenAPI referencu za parametre krajnjih tačaka i šeme odgovora.