J'ai l'opportunité d'utiliser l'API Java de JIRA et j'aimerais la présenter.
Il y avait beaucoup de documents et d'exemples utilisant Curl pour l'API REST, mais même si vous recherchez sur le net l'API Java, J'ai trouvé le tutoriel officiel JIRA suivant, mais il n'était pas utile car les informations étaient obsolètes.
En plus de cela, j'ai trouvé un échantillon d'un homme fort qui analyse JSON directement en utilisant HttpClient.
Ce sera une réinvention de la roue, mais exporter le résumé du problème JIRA vers Excel J'ai créé un échantillon et je voudrais le présenter.
Un exemple est un programme Java qui produit un aperçu des problèmes JIRA dans MS Excel. Elle est déjà fournie en tant que fonction standard (*), mais j'espère qu'elle sera utile pour ceux qui veulent apprendre l'API Java de JIRA. \ * Exporter les résultats de la recherche JIRA vers Microsoft Excel
Lorsqu'il est exécuté avec un programme de traitement par lots Java, le titre, le résumé et la description sont générés dans Excel spécifié par le premier argument. Le code publié sur GitHub ci-dessous n'est qu'un exemple, donc la partie qui produit Excel n'est pas particulièrement sophistiquée.
J'écrirai ci-dessous l'ordre et les questions que j'ai vérifiés par ordre chronologique. Si vous voulez juste une conclusion, consultez la section suivante.
→ Il existe une API. Il est écrit à la fin de la page suivante. Je ne sais pas lequel utiliser, JIRA Server, Cloud, Software Server, Service Desk Server. https://developer.atlassian.com/jiradev/jira-apis
D'un point de vue différent, j'ai cherché un échantillon de travail car il pouvait s'agir de Maven ou de gradle. La page suivante était la plus proche de la recherche de "pom java JIRA api". Même ceci est 2.0, ce qui est assez ancien. https://community.atlassian.com/t5/Answers-Developer-Questions/JIRA-Rest-Java-Client-libraries/qaq-p/524054
Apparemment, j'ai trouvé que les bibliothèques suivantes ressemblent à des mots clés.
J'ai également trouvé qu'il existe une API appelée JiraRestClientFactory.
Maintenant que je connais les bibliothèques dépendantes, j'ai écrit pom avec cela comme clé. Quand j'ai vérifié "jira-rest-java-client-core maven", j'ai trouvé que la version 4.0 est la plus récente. https://mvnrepository.com/artifact/com.atlassian.jira/jira-rest-java-client-core
Maintenant que les bibliothèques dépendantes ont été résolues, comment utilisez-vous l'API? J'ai vérifié. Recherchez "JiraRestClientFactory example" comme clé. http://massapi.com/class/ji/JiraRestClientFactory.html C'était un succès.
En regardant le code, JiraRestClientFactory (interface) est le point d'entrée, et c'était auparavant le nom de la classe d'implémentation Jersey…, mais AsynchronousJiraRestClientFactory est maintenant le nouveau nom.
Il a une structure qui acquiert JiraRestClient de Factory et recherche, mises à jour, etc.
━ JiraRestClientFactory (point d'entrée) ┗ AsynchronousJiraRestClientFactory (classe d'implémentation) ┗ JiraRestClient (client de l'usine) ┣ IssueClient (sous-groupe d'API pouvant être obtenu auprès de RestClient) ┣ SearchClient ┗ ProjectClient
Vous pouvez le voir en regardant le JavaDoc de JiraRestClient.
Après cela, j'ai trouvé que c'était le même que le tutoriel si je le remplace par Jersey → Asynchronous.
https://developer.atlassian.com/jiradev/jira-apis/jira-rest-apis/jira-rest-api-tutorials En regardant ce tutoriel REST, j'ai trouvé qu'il y avait Basic, OAuth, etc. En regardant l'exemple de code, il semble que l'authentification de base peut être effectuée avec le code suivant.
factory.createWithBasicHttpAuthentication(jiraServerUri, yourUsername, yourPassword);
J'ai recherché "Exemple de client de recherche JIRA". Quoi qu'il en soit, il semble bon d'ajouter un exemple. La page suivante était un hit, qui a également utilisé JerseyJiraRestClient pendant longtemps, mais c'est utile. http://stackoverflow.com/questions/29206524/how-to-get-all-issues-of-project-via-jira-rest-java-client
À partir de l'exemple ci-dessus, nous pouvons voir que nous pouvons rechercher avec le code suivant. Qu'est-ce qu'une promesse? J'ai pensé, mais quand je réclame (), l'itérateur est retourné. Tout ce que vous avez à faire est de boucler comme dans l'exemple.
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);
L'API était un peu étrange, mais je l'ai eu avec le code suivant.
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();
c'est tout.
Cliquez-ici pour le code.
Recommended Posts