Ich habe die Möglichkeit, die Java-API von JIRA zu verwenden und möchte sie vorstellen.
Es gab viele Dokumente und Beispiele, die Curl for REST API verwendeten, aber selbst wenn Sie im Internet nach Java API suchen, Ich habe das folgende offizielle JIRA-Tutorial gefunden, aber es war nicht nützlich, da die Informationen nicht mehr aktuell waren.
Außerdem habe ich eine Stichprobe eines starken Mannes gefunden, der JSON direkt mit HttpClient analysiert.
Es wird eine Neuerfindung des Rades sein, aber die Zusammenfassung des JIRA-Problems nach Excel exportieren Ich habe ein Beispiel erstellt und möchte es vorstellen.
Ein Beispiel ist ein Java-Programm, das eine Übersicht über JIRA-Probleme an MS Excel ausgibt. Es wird bereits als Standardfunktion (*) bereitgestellt, aber ich hoffe, es ist nützlich für diejenigen, die die Java-API von JIRA lernen möchten. \ * JIRA-Suchergebnisse nach Microsoft Excel exportieren
Bei der Ausführung mit einem Java-Stapelverarbeitungsprogramm werden Titel, Zusammenfassung und Beschreibung in das durch das erste Argument angegebene Excel ausgegeben. Der unten auf GitHub veröffentlichte Code ist nur ein Beispiel, daher ist der Teil, der Excel ausgibt, nicht besonders komplex.
Ich werde die Reihenfolge und Fragen, die ich unten geprüft habe, in chronologischer Reihenfolge aufschreiben. Wenn Sie nur eine Schlussfolgerung ziehen möchten, lesen Sie den nächsten Abschnitt.
→ Es gibt eine API. Es steht am Ende der folgenden Seite. Ich bin nicht sicher, welchen ich verwenden soll, JIRA Server, Cloud, Software Server, Service Desk Server. https://developer.atlassian.com/jiradev/jira-apis
Aus einem anderen Blickwinkel suchte ich nach einer Arbeitsprobe, da es sich entweder um Maven oder Gradle handeln könnte. Die folgende Seite war der Suche nach "pom java JIRA api" am nächsten. Auch das ist 2.0, was ziemlich alt ist. https://community.atlassian.com/t5/Answers-Developer-Questions/JIRA-Rest-Java-Client-libraries/qaq-p/524054
Anscheinend habe ich festgestellt, dass die folgenden Bibliotheken schlüsselwortähnlich sind.
Ich habe auch festgestellt, dass es eine API namens JiraRestClientFactory gibt.
Jetzt, da ich die abhängigen Bibliotheken kenne, habe ich pom mit diesem als Schlüssel geschrieben. Als ich "jira-rest-java-client-core maven" überprüfte, stellte ich fest, dass Version 4.0 die neueste ist. https://mvnrepository.com/artifact/com.atlassian.jira/jira-rest-java-client-core
Wie verwenden Sie die API, nachdem die abhängigen Bibliotheken aufgelöst wurden? Ich überprüfte. Suchen Sie nach "JiraRestClientFactory-Beispiel" als Schlüssel. http://massapi.com/class/ji/JiraRestClientFactory.html War ein Hit.
Beim Betrachten des Codes ist JiraRestClientFactory (Schnittstelle) der Einstiegspunkt, und es war früher der Implementierungsklassenname Jersey…, aber AsynchronousJiraRestClientFactory ist jetzt der neue Name.
Es hat eine Struktur, die JiraRestClient von Factory abruft und sucht, aktualisiert usw.
━ JiraRestClientFactory (Einstiegspunkt) ┗ AsynchronousJiraRestClientFactory (Implementierungsklasse) ┗ JiraRestClient (Client ab Werk) ┣ IssueClient (Unter-API-Gruppe, die von RestClient bezogen werden kann) ┣ SearchClient ┗ ProjectClient
Sie können es sehen, indem Sie sich das JavaDoc von JiraRestClient ansehen.
Danach stellte ich fest, dass es mit dem Tutorial identisch ist, wenn ich es durch Jersey → Asynchronous ersetze.
https://developer.atlassian.com/jiradev/jira-apis/jira-rest-apis/jira-rest-api-tutorials Beim Betrachten dieses REST-Tutorials stellte ich fest, dass es Basic, OAuth usw. gibt. Betrachtet man den Beispielcode, so scheint es, dass die Standardauthentifizierung mit dem folgenden Code durchgeführt werden kann.
factory.createWithBasicHttpAuthentication(jiraServerUri, yourUsername, yourPassword);
Ich habe nach "Search Client JIRA example" gesucht. Wie auch immer, es scheint gut, ein Beispiel hinzuzufügen. Die nächste Seite war ein Hit, bei dem auch der JerseyJiraRestClient lange Zeit verwendet wurde, aber er ist hilfreich. http://stackoverflow.com/questions/29206524/how-to-get-all-issues-of-project-via-jira-rest-java-client
Aus dem obigen Beispiel können wir sehen, dass wir mit dem folgenden Code suchen können. Was ist ein Versprechen? Ich dachte, aber wenn ich () behaupte, wird der Iterator zurückgegeben. Alles was Sie tun müssen, ist eine Schleife wie im Beispiel.
Promise<SearchResult> searchJqlPromise = client.getSearchClient().searchJql("project = MYPURRJECT AND status in (Closed, Completed, Resolved) ORDER BY assignee, resolutiondate");
for (Issue issue : searchJqlPromise.claim().getIssues()) {
System.out.println(issue.getSummary());
}
<dependency>
<groupId>com.atlassian.jira</groupId>
<artifactId>jira-rest-java-client-core</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>com.atlassian.jira</groupId>
<artifactId>jira-rest-java-client-api</artifactId>
<version>4.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.atlassian.fugue/fugue -->
<dependency>
<groupId>com.atlassian.fugue</groupId>
<artifactId>fugue</artifactId>
<version>2.6.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
</dependency>
JiraRestClientFactory factory = new AsynchronousJiraRestClientFactory();
URI uri = new URI("https://your-project-name.atlassian.net");
jiraRestClient = factory.createWithBasicHttpAuthentication(uri, userName, password);
Die API war etwas seltsam, aber ich habe sie mit dem folgenden Code erhalten.
SearchRestClient searchRestClient = jiraRestClient.getSearchClient();
final Set<String> fields = new HashSet<String>();
String jql = "status!=done"; // Only not done issues.
SearchResult result = searchRestClient.searchJql(jql, max, offset, fields).claim();
Iterable<Issue> issues = result.getIssues();
List<Issue> list = new ArrayList<Issue>();
for (final Issue issue : issues) {
list.add(issue);
}
issue.getKey();
issue.getSummary();
issue.getDescription();
das ist alles.
Klicken Sie hier für den Code.
Recommended Posts