2

Est-il possible de communiquer directement avec Confluence pour rechercher/ajouter des pages à l'espace etc à partir d'un plugin Jira personnalisé?JIRA Plugin communiquer avec Confluence

J'ai actuellement un plugin Jira sur lequel je travaille qui affiche un panneau dans la visionneuse d'issue mais qui veut rechercher une page particulière dans la confluence pour montrer un lien là s'il existe. Si ce n'est pas le cas, je veux avoir un bouton qui permet à l'utilisateur de créer cette page.

J'ai regardé l'API REST et il semble qu'elle devrait faire ce que je veux, mais puis-je interagir directement en utilisant les classes JAVA? Est-ce que l'authentification unique entre eux me permet d'appeler un service REST à la confluence de JIRA sans mettre l'authentification dans l'appel REST?

Répondre

4

En bref:

J'ai regardé l'API REST et il semble que cela devrait faire ce que je veux, mais je peux interagir directement avec les classes JAVA?

Non, il n'y a pas api java disponible aussi simple que:

ConfluenceService.searchPage(String title) 
ConfluenceService.createPage(String parent, String title) 

Est-ce que le signe unique sur entre eux me permettent d'appeler un service REST sur la confluence de JIRA sans mettre l'authentification dans le Appel REST?

Oui.

De façon plus détaillée:

java api-ce que vous pouvez utiliser sont les Application Link api et SAL api, en particulier demande et la réponse de l'emballage com.atlassian.sal.api.net. Ce qui revient à dire que vous devez d'abord configurer un lien d'application dans JIRA vers votre instance Confluence. Ensuite, à partir de votre plugin personnalisée, utilisez le lien d'application api pour récupérer une instance ApplicationLink, par exemple:

ApplicationLink confluenceLink = applicationLinkService.getPrimaryApplicationLink(ConfluenceApplicationType.class) 

Après cela, vous pouvez utiliser cette confluencelink pour obtenir un requestFactory:

ApplicationLinkRequestFactory requestFactory = confluenceLink.createAuthenticatedRequestFactory(); 

Le requestFactory facilite l'envoi des demandes REST à Confluence et gère les réponses. Il prend également en charge l'authentification, en utilisant la configuration du lien d'application dans JIRA.

Pour un exemple plus détaillé, y compris la recherche de pages Confluence, vérifiez this tutorial. En fonction de ce que vous essayez d'accomplir, il peut également être utile de regarder les add-ons Structure et Structure Pages. Leur but est d'intégrer plus étroitement JIRA et Confluence et de fournir un moyen convivial d'afficher les pages Confluence dans Structures au sein de JIRA et de modifier ces pages à partir de JIRA.

0

Jira a quelque chose appelé JRJC: https://marketplace.atlassian.com/plugins/com.atlassian.jira.jira-rest-java-client/server/overview

Ce n'est pas activement soutenu par Atlassian, mais il pourrait faire ce que vous avez besoin.

Mais plutôt que de se limiter à JRJC, je vous suggère d'utiliser Jersey ou autre chose et il suffit d'utiliser les API REST directement

J'ai eu la chance d'avoir Jira et Confluence interagissent les uns avec les autres en utilisant les API REST, JQ , et bash les scripts.

Voici un blog que j'ai écrit à ce sujet, qui contient un emplacement github pour la source. https://javamemento.blogspot.no/2016/05/jira-confluence-3.html

Le script est dans bash, mais il peut vous donner un aperçu de la façon de l'utiliser depuis Java. Cependant, je n'ai pas travaillé avec la recherche sur confluence pour les pages. En ce qui concerne votre dernière question, non, vous devrez fournir une authentification avec chaque appel REST.