Programování
Radzivon Alkhovik
Nadšenec do automatizace s nízkým kódem
23. července 2024
Jira, univerzální platforma společnosti Atlassian pro sledování problémů a správu projektů, se stala nepostradatelným nástrojem pro nespočet vývojových týmů po celém světě. Její uživatelsky přívětivé rozhraní sice usnadňuje správu projektů a sledování problémů, ale skutečná síla systému Jira spočívá v jeho rozsáhlých možnostech přizpůsobení a integraci. Ústředním prvkem je rozhraní Jira REST API, které otevírá svět možností automatizace úloh, vytváření vlastních aplikací a bezproblémové integrace Jiry s dalšími nástroji ve vašem vývojovém ekosystému. V tomto obsáhlém průvodci se ponoříme do rozhraní Jira REST API, prozkoumáme jeho možnosti a projdeme si praktické příklady, které vám pomohou začít.
Klíčové poznatky: Jira REST API je univerzální nástroj pro automatizaci úloh, vytváření vlastních aplikací a integraci Jiry s dalšími vývojovými nástroji ve verzích Cloud i Server/Data Center. Nabízí širokou škálu funkcí včetně správy problémů, hromadných operací a vlastních sestav s podporou pokročilých funkcí, jako je stránkování a rozšiřování dat. I když mezi jednotlivými verzemi existují určité rozdíly, základní funkce rozhraní API zůstávají konzistentní, což týmům umožňuje efektivně přizpůsobit Jiru svým specifickým potřebám a hladce ji integrovat do svého vývojového ekosystému.
Rozhraní API (Application Programming Interface) je v podstatě soubor protokolů a nástrojů, které určují, jak mají softwarové komponenty vzájemně komunikovat. V kontextu systému Jira umožňuje rozhraní API externím aplikacím programově komunikovat se systémem Jira, což umožňuje získávat data a manipulovat s nimi a provádět akce v rámci systému Jira. Jira poskytuje dva typy rozhraní API:
Rozhraní Jira Java API je výkonný nástroj pro vývojáře, kteří vytvářejí vlastní aplikace nebo zásuvné moduly Jira. Poskytuje přímý přístup k základním objektům a metodám Java serveru Jira, což umožňuje hlubokou integraci a přizpůsobení. Tato úroveň přístupu je však dostupná pouze pro lokální instalace systému Jira (server nebo datové centrum), kde máte přímý přístup k serveru. Pokud pracujete se službou Jira Cloud nebo vytváříte samostatnou integraci, je rozhraní REST API tou správnou cestou.
REST (Representational State Transfer) je architektonický styl, který definuje soubor omezení pro vytváření webových služeb. Rozhraní REST API vystavuje sadu koncových bodů HTTP, ke kterým lze přistupovat odesíláním požadavků pomocí specifických metod HTTP (GET, POST, PUT, DELETE) a provádět operace se zdroji.
Rozhraní Jira REST API se řídí touto architekturou a poskytuje komplexní sadu koncových bodů pro interakci s téměř všemi aspekty systému Jira, od problémů a projektů až po agilní nástěnky a ovládací panely. Vrací data ve formátu JSON a podporuje různé metody ověřování pro zajištění bezpečného přístupu.
Jednou z klíčových výhod rozhraní REST API je jeho nezávislost na platformě - rozhraní API můžete volat z jakéhokoli zařízení nebo aplikace, která umí zadávat požadavky HTTP, bez ohledu na použitý programovací jazyk. To z něj činí ideální volbu pro vytváření integrací mezi systémem Jira a jinými nástroji nebo pro skriptování interakcí se systémem Jira z příkazového řádku.
Možnosti jsou téměř nekonečné. Zde je jen několik příkladů toho, čeho můžete dosáhnout pomocí rozhraní Jira REST API:
To je jen několik příkladů - rozhraní Jira REST API poskytuje rozsáhlou sadu koncových bodů, které pokrývají téměř všechny funkce a vlastnosti dostupné v uživatelském rozhraní Jira. Pokud to umíte v aplikaci Jira, je pravděpodobné, že to umíte i prostřednictvím rozhraní API.
Přestože rozhraní Jira REST API poskytuje v podstatě stejné funkce pro Jira Cloud, Server a Datové centrum, je třeba si uvědomit několik zásadních rozdílů:
Navzdory těmto rozdílům zůstávají základní koncepty a způsoby použití rozhraní REST API v podstatě stejné v různých nasazeních. Dovednosti a znalosti, které získáte při práci s jednou verzí rozhraní API, budou snadno přenositelné na jiné verze.
Chcete-li začít používat rozhraní Jira REST API, budete potřebovat:
Po zavedení těchto prvků můžete začít zadávat první požadavky API.
Ukážeme si praktický příklad použití rozhraní Jira REST API k vytváření, načítání, aktualizaci a vyhledávání problémů. Pro naše příklady budeme používat Postman, ale principy platí pro jakéhokoli klienta API.
Pokud ještě nemáte instanci Jira, se kterou byste mohli pracovat, nejjednodušší způsob, jak začít, je zaregistrovat se k bezplatné instanci Jira Cloud na adrese https://www.atlassian.com/software/jira. Jakmile je vaše stránka nastavena, vytvořte nový projekt, se kterým budete pracovat.
K ověření našich požadavků API použijeme token API. Zde je návod, jak ho vygenerovat:
Začněme načtením podrobností existujícího problému:
Nyní vytvoříme novou záležitost prostřednictvím rozhraní API:
Přepněte na kartu "Body", vyberte přepínač "raw" a zadejte následující JSON, přičemž podle potřeby nahraďte hodnoty project.key, issuetype.name, summary a description:
3. Klikněte na tlačítko "Odeslat". Jira vám odpoví se stavem 201 Vytvořeno a s úplnými podrobnostmi o nově vytvořeném problému.
Pro aktualizaci existujícího vydání použijeme metodu PUT:
V těle požadavku uveďte pole, která chcete aktualizovat, například:
2. Klikněte na tlačítko "Odeslat". Jira odpoví stavem 204 Žádný obsah, což znamená, že aktualizace proběhla úspěšně.
Výkonné možnosti vyhledávání v systému Jira jsou dostupné také prostřednictvím rozhraní REST API pomocí jazyka JQL (Jira Query Language):
V těle požadavku uveďte dotaz JQL a případné další parametry:
Tento dotaz vrátí 10 naposledy vytvořených záležitostí ve stavu "K vyřízení" ze zadaného projektu, včetně pouze polí souhrn, stav a příjemce.
Tyto příklady jen poodhalují možnosti rozhraní Jira REST API. Až se lépe seznámíte s dostupnými koncovými body a parametry, budete moci vytvářet stále složitější a výkonnější integrace.
Jedním z nejvýkonnějších využití rozhraní Jira REST API je automatizace vytváření a aktualizace úloh. Pomocí webu Latenode, můžete nastavit sofistikované pracovní postupy, které automaticky vytvářejí a aktualizují úlohy v systému Jira na základě dat z externích zdrojů nebo specifických spouštěčů. Tím je zajištěno, že informace v systému pro správu projektů budou aktuální a včasné, což zvyšuje efektivitu týmu.
Můžete například vytvořit pracovní postup, který automaticky vytvoří novou úlohu v systému Jira, když obdržíte chybovou zprávu z monitorovacího systému, vyplní všechna potřebná pole a přiřadí úlohu příslušnému vývojáři. Jakmile přijdou aktualizace, může být úkol automaticky aktualizován, a jakmile je problém vyřešen, může být uzavřen. Tento zjednodušený přístup nejen zlepšuje sledování problémů, ale také šetří čas vašeho týmu, který se tak může soustředit na řešení problémů, nikoli na jejich správu.
Více informací o tomto skriptu a integraci s webem Latenode najdete v tomto článku. Integrace se stránkou Latenode nabízí několik klíčových výhod:
Představte si, že se každý důležitý e-mail od klienta automaticky změní na úkol v systému Jira. S Latenode, se to stane skutečností. Naše platforma zajistí vytvoření nového úkolu ve správném projektu s vyplněnými poli na základě obsahu e-mailu, což zaručí, že žádný důležitý požadavek nebude opomenut.
Zde je příklad, jak pracovní postup Latenode automatizuje vytváření a aktualizace úloh Jira na základě příchozích e-mailových dat z externího zdroje.
Tento obrázek by zobrazoval vizuální reprezentaci pracovního postupu v rozhraní Latenode se spojenými uzly, které představují jednotlivé kroky procesu od přijetí e-mailu po vytvoření úlohy v systému Jira.
Toto je jen jeden z příkladů, jak Latenode může změnit váš přístup k používání rozhraní Jira API pomocí výkonné automatizace. Možnosti platformy jsou ve skutečnosti prakticky neomezené - můžete vytvářet libovolné automatizační scénáře potřebné ke zvýšení efektivity vašeho podnikání. Ať už se jedná o automatickou distribuci úkolů, zasílání oznámení, sledování klíčových ukazatelů výkonnosti nebo jakékoli jiné úkoly - Latenode poskytuje nástroje, které je uvedou v život.
S využitím vizuálního nástroje pro tvorbu pracovních postupů Latenode a bezproblémové integrace s rozhraním Jira REST API můžete snadno navrhovat a implementovat složité automatizační scénáře, čímž zvýšíte efektivitu řízení projektů a urychlíte pracovní postupy svého týmu.
Pokud potřebujete pomoc nebo radu, jak vytvořit vlastní skript, nebo pokud chcete tento skript zopakovat, obraťte se na naši komunitu Discord, kde jsou odborníci na automatizaci Low-code.
Jakmile začnete v aplikaci Jira pracovat s většími soubory dat, budete si muset uvědomit, jak rozhraní REST API pracuje se stránkováním, rozšiřováním vnořených zdrojů a řazením výsledků.
Mnoho zdrojů Jira obsahuje odkazy na další vnořené zdroje. Například Issue obsahuje odkazy na svůj projekt, Issuetype, Creator, Reporter, Assignee, Comments, Attachments a další. Ve výchozím nastavení jsou tyto vnořené zdroje vráceny jako vnořené zdroje, které obsahují pouze několik základních polí a vlastní odkaz na celý zdroj.
Pokud potřebujete úplné údaje o vnořeném prostředku, můžete použít parametr expand query a požádat Jiru, aby do odpovědi zahrnula celý prostředek. Například pro zahrnutí úplných podrobností o projektu a příjemci problému:
Více zdrojů můžete rozbalit tak, že je oddělíte čárkou. Uvědomte si, že rozšíření mohou výrazně zvětšit velikost užitečného zatížení odpovědi, proto je používejte s rozvahou.
Požadavky, které mohou potenciálně vrátit velké množství výsledků (například vyhledávání JQL), jsou ve výchozím nastavení stránkovány. Rozhraní API vrátí maximální počet výsledků na stránku (výchozí hodnota je 50, ale lze ji upravit až na 100) spolu s odkazy na další a předchozí stránky.
Stránkování můžete řídit pomocí parametrů startAt a maxResults:
Například pro načtení druhé stránky výsledků s velikostí stránky 20:
Vaše aplikace bude muset zvládnout více požadavků na načtení všech stránek s výsledky.
Pořadí výsledků můžete ovlivnit pomocí parametru orderBy, který přijímá seznam polí oddělených čárkou, podle kterých se mají seřadit. Každé pole může mít předponu -, která označuje sestupné pořadí.
Například seřadit záležitosti podle data vytvoření sestupně a poté podle priority vzestupně:
GET .../rest/api/3/search?jql=project=YOUR_PROJECT_KEY&orderBy=-created,priority
Ne všechna pole podporují řazení - informace o tom, co je k dispozici, naleznete v dokumentaci ke konkrétnímu koncovému bodu.
Zde je několik pokročilejších příkladů demonstrujících možnosti rozhraní Jira REST API pro hromadné operace.
Předpokládejme, že máte soubor CSV obsahující data pro více problémů, které chcete v systému Jira vytvořit nebo aktualizovat. K automatizaci tohoto procesu můžete použít nástroj, jako je Postman:
Na kartě Tělo vyberte přepínač "raw" a zadejte šablonu pro data vydání pomocí proměnných pro pole, která budou pocházet z vašeho CSV:
2. Přepněte na kartu "Pre-request Script" a přidejte kód pro načtení souboru CSV a nastavení příslušných proměnných:
3. V okně "Runner" vyberte soubor CSV jako datový soubor a spusťte běh. Postman vytvoří nový požadavek pro každý řádek ve vašem CSV a nahradí jej proměnnými ze souboru.
Jedná se o výkonnou techniku pro hromadný import dat do systému Jira z externích zdrojů.
Pokud jsou vaše zdrojová data již ve formátu JSON, můžete použít koncový bod pro hromadné vytvoření/aktualizaci a zpracovat více čísel v jednom požadavku:
POST https://your-domain.atlassian.net/rest/api/3/issue/bulk
Tělo požadavku by mělo obsahovat pole objektů pro vytvoření/aktualizaci vydání, přičemž každý z nich má stejný formát jako jeden požadavek na vytvoření/aktualizaci vydání:
Tím se v jednom požadavku vytvoří dva problémy - úkol v projektu PROJ1 a chyba v projektu PROJ2. Do jednoho hromadného požadavku můžete zahrnout až 50 problémů.
Hromadný koncový bod je také užitečný pro provádění hromadných přechodů, aktualizací a mazání. Například k přechodu více záležitostí do stavu "Hotovo":
To předpokládá, že "31" je ID vašeho přechodu "Hotovo" - dostupné přechody pro daný typ problému můžete najít prostřednictvím koncového bodu /rest/api/3/issue/{issueIdOrKey}/transitions.
Rozhraní Jira REST API je nesmírně výkonný nástroj pro integraci Jiry s jinými systémy, automatizaci úloh a rozšiřování možností Jiry. V této příručce jsme se věnovali základům rozhraní API, včetně:
Zatím jsme však jen poškrábali povrch. Rozhraní Jira REST API poskytuje koncové body pro práci s téměř všemi aspekty systému Jira, od projektů a nástěnek až po uživatele a oprávnění. Při vytváření svých integrací nezapomeňte nahlédnout do oficiální dokumentace společnosti Atlassian, kde najdete nejaktuálnější a nejobsáhlejší informace.
S rozhraním Jira REST API v sadě nástrojů máte téměř nekonečné možnosti, co můžete s Jirou dělat. Ať už vytváříte vlastní přehledový panel, synchronizujete data s jiným systémem nebo automatizujete složité pracovní postupy, rozhraní API vám k tomu poskytne potřebnou flexibilitu a výkon.
Jira Cloud podporuje OAuth 2.0 a tokeny API pro ověřování. V případě OAuth je třeba zaregistrovat aplikaci ve vývojářské konzoli Atlassian a získat ID a tajný kód klienta. Tokeny API jsou jednodušší možností pro skripty a osobní integrace. Jira Server a Data Center podporují základní ověřování (uživatelské jméno a heslo) a ověřování na základě relace pomocí souborů cookie.
I když jsou základní koncové body a funkce z velké části stejné, existují některé klíčové rozdíly:
Vždy se podívejte do dokumentace k nasazení aplikace Jira, abyste se ujistili, že používáte správné adresy URL a parametry.
Služba Jira Cloud vynucuje omezení rychlosti, aby byla zajištěna stabilita a výkon služby. Pokud limit rychlosti překročíte, obdržíte odpověď 429 Too Many Requests.
Abyste se vyhnuli překročení limitů rychlosti:
Nasazení serverů a datových center mají ve výchozím nastavení omezení rychlosti zakázáno, ale správci mohou v případě potřeby povolit a nakonfigurovat omezení rychlosti.
Ano, Jira Server a Data Center mají rozhraní REST API, které je do značné míry podobné rozhraní API služby jira Cloud. Hlavní rozdíly jsou následující:
Nejpřesnější informace pro vaši verzi aplikace Jira naleznete v dokumentaci rest api pro konkrétní server/datové centrum.
Rozhraní Jira REST API představuje výkonný a flexibilní způsob integrace aplikace Jira do pracovního postupu vývoje. Ať už pracujete v cloudu nebo spravujete vlastní server, rozhraní API poskytuje nástroje, které potřebujete k automatizaci, přizpůsobení a rozšíření systému Jira tak, aby vyhovoval jedinečným potřebám vašeho týmu. Po troše zkoumání a experimentování budete moci plně odemknout potenciál systému Jira a posunout správu projektů na vyšší úroveň.