Integrácia rozhrania JIRA REST API

1. Úvod

V tomto článku sa budeme rýchlo venovať tomu, ako sa integrovať s JIRA pomocou jeho REST API.

2. Závislosť od Maven

Požadované artefakty nájdete vo verejnom úložisku Maven spoločnosti Atlassian:

 atlassian-public //packages.atlassian.com/maven/repository/public 

Po pridaní úložiska do priečinka pom.xml, musíme pridať nasledujúce závislosti:

 com.atlassian.jira jira-rest-java-client-core 4.0.0 com.atlassian.fugue fuga 2.6.1 

Najnovšie verzie servera Maven nájdete v centre Maven jadro a fúga závislosti.

3. Vytvorenie klienta Jira

Najprv sa pozrime na niekoľko základných informácií, ktoré potrebujeme, aby sme sa mohli pripojiť k inštancii Jira:

  • používateľské meno - je používateľské meno každého platného používateľa Jira
  • heslo - je heslo tohto používateľa
  • jiraUrl - je adresa URL, na ktorej je hostená inštancia Jira

Keď máme tieto podrobnosti, môžeme vytvoriť inštanciu nášho klienta Jira:

MyJiraClient myJiraClient = nový MyJiraClient ("user.name", "heslo", "//jira.company.com");

Konštruktér tejto triedy:

public MyJiraClient (meno používateľa reťazca, heslo reťazca, reťazec jiraUrl) {this.username = meno používateľa; this.password = heslo; this.jiraUrl = jiraUrl; this.restClient = getJiraRestClient (); }

The getJiraRestClient () využije všetky poskytnuté informácie a vráti inštanciu JiraRestClient. Toto je hlavné rozhranie, cez ktoré budeme komunikovať s rozhraním Jira REST API:

private JiraRestClient getJiraRestClient () {return new AsynchronousJiraRestClientFactory () .createWithBasicHttpAuthentication (getJiraUri (), this.username, this.password); }

Tu používame základné overenie na komunikáciu s API. Podporované sú však aj sofistikovanejšie mechanizmy autentifikácie, ako je OAuth.

The getUri () metóda jednoducho prevedie jiraUrl do inštancie java.net.URI:

private URI getJiraUri () {return URI.create (this.jiraUrl); }

Týmto sa končí naša infraštruktúra vytvárania prispôsobeného klienta Jira. Teraz sa môžeme pozrieť na rôzne spôsoby interakcie s API.

3.1. Vytvorte nové vydanie

Začnime vytvorením nového čísla. Toto novovytvorené vydanie použijeme pre všetky ďalšie príklady v tomto článku:

public String createIssue (String projectKey, Long issueType, String issueSummary) {IssueRestClient issueClient = restClient.getIssueClient (); IssueInput newIssue = nový IssueInputBuilder (projectKey, issueType, issueSummary) .build (); vrátiť issueClient.createIssue (newIssue) .claim (). getKey (); }

The projectKey je jedinečný, ktorý definuje váš projekt. Toto nie je nič iné ako predpona, ktorá je pripojená k všetkým našim problémom. Ďalší argument, typ problému tiež závisí od projektu, ktorý identifikuje typ vašich problémov, ako napríklad „Úloha“ alebo „Príbeh“. The issueSummary je názov nášho čísla.

Problém je inštanciou IssueInput k zvyšku API. Okrem vstupov, ktoré sme opísali, môžu veci ako postupník, reportér, ovplyvnené verzie a ďalšie metadáta ísť ako IssueInput.

3.2. Aktualizácia popisu problému

Každé vydanie v Jire je identifikované jedinečným String Páči sa mi to "MYKEY-123„. Tento kľúč problému potrebujeme na interakciu s ostatnými API a aktualizáciu popisu problému:

public void updateIssueDescription (String issueKey, String newDescription) {IssueInput vstup = nový IssueInputBuilder () .setDescription (newDescription) .build (); restClient.getIssueClient () .updateIssue (issueKey, vstup) .claim (); }

Po aktualizácii popisu si tento aktualizovaný popis nečítajte:

public Issue getIssue (String issueKey) {return restClient.getIssueClient () .getIssue (issueKey) .claim (); }

The Problém inštancia predstavuje problém identifikovaný issueKey. V tejto inštancii si môžeme prečítať popis tohto problému:

Issue issue = myJiraClient.getIssue (issueKey); System.out.println (issue.getDescription ());

Týmto sa do konzoly vytlačí popis problému.

3.3. Hlasujte za vydanie

Keď máme získanú inštanciu Vydania, môžeme ju použiť aj na vykonávanie akcií aktualizácie a úprav. Hlasujme za vydanie:

public void voteForAnIssue (problém s vydaním) {restClient.getIssueClient () .vote (issue.getVotesUri ()) .claim (); }

Týmto sa pridá hlas do problém v mene používateľa, ktorého poverenia boli použité. Toto je možné overiť kontrolou počtu hlasov:

public int getTotalVotesCount (reťazec issueKey) {BasicVotes hlasov = getIssue (issueKey) .getVotes (); spätné hlasy == null? 0: hlasov.getVotes (); }

Tu je potrebné poznamenať, že opäť načítame nový príklad Problém tu chceme dosiahnuť premietnutie aktualizovaného počtu hlasov.

3.4. Pridanie komentára

Môžeme použiť to isté Problém napríklad pridať komentár v mene používateľa. Rovnako ako pridanie hlasu, aj pridanie komentára je veľmi jednoduché:

public void addComment (problém s vydaním, reťazec commentBody) {restClient.getIssueClient () .addComment (issue.getCommentsUri (), Comment.valueOf (commentBody)); }

Použili sme továrenskú metódu hodnota() poskytuje Komentovať triedy na vytvorenie inštancie a Komentovať. Existuje niekoľko ďalších továrenských metód pre pokročilé prípady použitia, napríklad kontrola viditeľnosti a Komentovať.

Načítajme novú inštanciu súboru Problém a prečítať všetky Komentovaťs:

public List getAllComments (String issueKey) {return StreamSupport.stream (getIssue (issueKey) .getComments (). spliterator (), false) .collect (Collectors.toList ()); }

3.5. Odstrániť problém

Vymazanie čísla je tiež pomerne jednoduché. Potrebujeme iba kľúč vydania, ktorý identifikuje problém:

public void deleteIssue (reťazec issueKey, boolean deleteSubtasks) {restClient.getIssueClient () .deleteIssue (issueKey, deleteSubtasks) .claim (); }

4. Záver

V tomto rýchlom článku sme vytvorili jednoduchého klienta Java, ktorý sa integruje do rozhrania Jira REST API a vykonáva niektoré základné operácie.

Celý zdroj tohto článku nájdete na GitHub.


$config[zx-auto] not found$config[zx-overlay] not found