JIRA REST API integráció

1. Bemutatkozás

Ebben a cikkben gyorsan áttekintjük, hogyan lehet integrálni a JIRA-val a REST API segítségével.

2. Maven-függőség

A szükséges leletek megtalálhatók az Atlassian nyilvános Maven-tárában:

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

Miután a lerakat hozzá lett adva a pom.xml, hozzá kell adnunk az alábbi függőségeket:

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

A legfrissebb verzióról a Maven Central webhelyen tájékozódhat mag és fúga függőségek.

3. Jira kliens létrehozása

Először nézzünk meg néhány alapvető információt, amelyekre képesek vagyunk csatlakozni egy Jira példányhoz:

  • felhasználónév - bármely érvényes Jira felhasználó felhasználóneve
  • Jelszó - az adott felhasználó jelszava
  • jiraUrl - az az URL, ahol a Jira példányt tárolják

Miután megvan ezek a részletek, példányosíthatjuk Jira kliensünket:

MyJiraClient myJiraClient = új MyJiraClient ("felhasználó.név", "jelszó", "//jira.company.com");

Ennek az osztálynak a kivitelezője:

public MyJiraClient (String felhasználónév, String jelszó, String jiraUrl) {this.username = felhasználónév; ez.jelszó = jelszó; ez.jiraUrl = jiraUrl; this.restClient = getJiraRestClient (); }

A getJiraRestClient () felhasználja az összes megadott információt, és visszaadja a JiraRestClient. Ez az a fő felület, amelyen keresztül kommunikálni fogunk a Jira REST API-val:

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

Itt az alapvető hitelesítést használjuk az API-val való kommunikációhoz. Azonban olyan kifinomultabb hitelesítési mechanizmusok is támogatottak, mint az OAuth.

A getUri () módszer egyszerűen átalakítja a jiraUrl példányába java.net.URI:

privát URI getJiraUri () {return URI.create (this.jiraUrl); }

Ez befejezi az infrastruktúránkat egy egyedi Jira kliens létrehozásával. Most megnézhetjük az API-val való interakció különböző módjait.

3.1. Hozzon létre egy új számot

Kezdjük egy új kiadás létrehozásával. Ezt az újonnan létrehozott kérdést a cikk összes többi példájára felhasználjuk:

public String createIssue (String projectKey, Long issueType, String issueSummary) {IssueRestClient issueClient = restClient.getIssueClient (); IssueInput newIssue = new IssueInputBuilder (projectKey, issueType, issueSummary) .build (); return issueClient.createIssue (newIssue) .claim (). getKey (); }

A projectKey az egyedi, amely meghatározza a projektedet. Ez nem más, mint az összes kérdésünkhöz csatolt előtag. A következő érv probléma típus szintén projektfüggő, amely azonosítja a problémák típusát, például a „Feladat” vagy a „Történet”. A issueSummary számunk címe.

A kérdés példaként szolgál IssueInput a többi API-hoz. Az általunk leírt bemeneteken kívül az olyan dolgok, mint a megbízott, a riporter, az érintett verziók és más metaadatok, IssueInput.

3.2. Frissítse a probléma leírását

A Jira minden egyes számát egy egyedi azonosítja Húr mint "MYKEY-123“. Szükségünk van erre a problémakulcsra, hogy kapcsolatba lépjünk a többi API-val, és frissítsük a probléma leírását:

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

A leírás frissítése után ne olvassuk vissza a frissített leírást:

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

A Probléma példány a issueKey. Ezzel a példánnyal elolvashatjuk a probléma leírását:

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

Ez kinyomtatja a probléma leírását a konzolra.

3.3. Szavazás egy számra

Miután megszereztük a probléma egyik példányát, használhatjuk frissítési / szerkesztési műveletek végrehajtására is. Szavazzunk a kérdésre:

public void voteForAnIssue (Issue issue) {restClient.getIssueClient () .vote (issue.getVotesUri ()) .claim (); }

Ez hozzáadja a szavazatot a probléma annak a felhasználónak a nevében, akinek hitelesítő adatait használták. Ez a szavazatok számának ellenőrzésével ellenőrizhető:

public int getTotalVotesCount (String issueKey) {BasicVotes votes = getIssue (issueKey) .getVotes (); szavazatok visszaadása == null? 0: szavazatok.getVotes (); }

Itt meg kell jegyezni, hogy ismét egy új példányt kapunk Probléma itt szeretnénk megjeleníteni a frissített szavazatok számát.

3.4. Megjegyzés hozzáadása

Ugyanezt használhatjuk Probléma Például megjegyzés hozzáadása a felhasználó nevében. A szavazáshoz hasonlóan a megjegyzés hozzáadása is nagyon egyszerű:

public void addComment (Issue issue, String commentBody) {restClient.getIssueClient () .addComment (issue.getCommentsUri (), Comment.valueOf (commentBody)); }

A gyári módszert alkalmaztuk értéke() a Megjegyzés osztály létrehozni egy példányát a Megjegyzés. Számos más gyári módszer létezik a fejlettebb eseteknél, például az a láthatóságának ellenőrzése Megjegyzés.

Hívjunk egy új példányt a Probléma és elolvassa az összes Megjegyzéss:

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

3.5. Probléma törlése

A kérdés törlése szintén meglehetősen egyszerű. Csak a probléma azonosítójára van szükségünk:

public void deleteIssue (String issueKey, logikai törlésSubtasks) {restClient.getIssueClient () .deleteIssue (issueKey, deleteSubtasks) .claim (); }

4. Következtetés

Ebben a gyors cikkben létrehoztunk egy egyszerű Java klienst, amely integrálódik a Jira REST API-val és végrehajtja az alapvető műveleteket.

A cikk teljes forrása a GitHub oldalon található.