Exportieren Sie ein Problem mithilfe der Java-API von JIRA

Vorwort

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.

Einführung in die Verwendung der Java-API von JIRA.

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.

Über die Reihenfolge der Untersuchung und die Punkte, die ich zweifelhaft fühlte

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.

In Java sollte eine API enthalten sein, nicht nur die REST-API.

→ 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

Was soll ich überhaupt für die abhängige Bibliothek verwenden?

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.

Wohin ging das Tutorial JerseyJiraRestClientFactory?

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

Um welche Art von API-Struktur handelt es sich?

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.

Wie authentifizierst du dich?

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);

Wie suchst du?

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

Ein einfaches Beispiel nur zur Suche

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());
    }

Schlussfolgerung für die Erstellung eines Beispiels zur Suche nach Problemen

1. Schreiben Sie in pom.xml Folgendes.

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

2. Beziehen Sie JiraRestClient mit Standardauthentifizierung.

    JiraRestClientFactory factory = new AsynchronousJiraRestClientFactory();
    URI uri = new URI("https://your-project-name.atlassian.net");
    jiraRestClient = factory.createWithBasicHttpAuthentication(uri, userName, password);

3. Nehmen Sie ein Problem mit dem Search Client auf.

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);
    }

4. Sie können die erforderlichen Informationen über die Issue-API abrufen.

  issue.getKey();
  issue.getSummary();
  issue.getDescription();

das ist alles.

Klicken Sie hier für den Code.

Recommended Posts

Exportieren Sie ein Problem mithilfe der Java-API von JIRA
Ich habe versucht, die Java8 Stream API zu verwenden
Datenverarbeitung mit der Stream-API von Java 8
Versuchen Sie es mit der Stream-API in Java
Versuchen Sie es mit der JSON-Format-API in Java
Java Stream API
Interagieren Sie mit der LINE Message API mit Lambda (Java)
ChatWork4j für die Verwendung der ChatWork-API in Java
[Java] API-Erstellung mit Jerjey (Jax-rs) mit Eclipse
Versuchen Sie, die Cloud Vision-API von GCP in Java zu verwenden
Versuchen Sie es mit der Syntaxanalyse der COTOHA-API in Java
Sortieren mit Java-Komparator
[Java] Stream API / Map
Fehlerbehebung bei der Docker-Client Java API
Schrottpraxis mit Java ②
Zabbix API in Java
Schrottpraxis mit Java ①
Elasticsearch-Vorgang über die REST-API mit Apache HttpClient in Java
Übersetzen mit der Microsoft Translator-Text-API in Java (Japanisch → Englisch)
Tipps zur Verwendung von Salesforce SOAP und Bulk API in Java
So spielen Sie eine MIDI-Datei mit der Java Sound API ab
Versuchen Sie es mit RocksDB mit Java
Versuchen Sie, mit Java zu kratzen [Hinweis]
Java Stream API Spickzettel
Java Stream API in 5 Minuten
[Java] Stream API - Stream-Beendigungsverarbeitung
[Java] Stream API - Stream Zwischenverarbeitung
Verwenden von Mapper mit Java (Spring)
Ich habe versucht, Java REPL zu verwenden
[Java] Einführung in die Stream-API
Verwenden von Docker von Java Gradle
Java Basic Learning Content 8 (Java-API)
Machen Sie einen Diamanten mit Java
[Java] Stream API Zwischenoperation
Neueste Generierung von Java-API-Spezifikationen
Blasensortierung mit ArrayList (JAVA)
Beispiel für die Verwendung der Bulk-API von Salesforce vom Java-Client mit PK-Chunking