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ó.