JIRA插件与Confluence通信

时间:2016-05-14 22:01:08

标签: jira confluence jira-plugin confluence-rest-api

是否可以直接与Confluence通信,从自定义Jira插件中搜索/添加页面到空间等?

我目前有一个正在处理的Jira插件,它在问题查看器中显示一个面板,但想要在汇合中搜索特定页面,以显示它的链接(如果存在)。如果它不存在,我想有一个允许用户创建该页面的按钮。

我已经查看了REST API,它看起来应该做我想要的,但我可以直接使用JAVA类进行交互吗?

它们之间的单点登录是否允许我在JIRA的汇合下调用REST服务而不将身份验证放入REST调用中?

2 个答案:

答案 0 :(得分:4)

简而言之:

  

我已经查看了REST API,它看起来应该做我想要的,但是我可以直接使用JAVA类进行交互吗?

没有。没有简单的java api可用:

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

它们之间的单点登录是否允许我在JIRA的汇合下调用REST服务而不将身份验证放入REST调用中?

更详细:

您可以使用的java api是Application Link apiSAL api,尤其是来自com.atlassian.sal.api.net包的请求和响应。

归结为您首先在JIRA中将应用程序链接配置到Confluence实例。然后从您的自定义插件中,使用应用程序链接api来检索ApplicationLink实例,例如:

ApplicationLink confluenceLink = applicationLinkService.getPrimaryApplicationLink(ConfluenceApplicationType.class) 

之后,您可以使用此 confluencelink 来获取requestFactory:

ApplicationLinkRequestFactory requestFactory = confluenceLink.createAuthenticatedRequestFactory();

requestFactory可以轻松地向Confluence发送REST请求并处理响应。它还使用JIRA中应用程序链接的配置来处理身份验证。

有关更详细的示例,包括搜索Confluence页面,请选中this tutorial

根据您尝试完成的内容,查看StructureStructure Pages插件可能也是值得的。他们的目标是更紧密地集成JIRA和Confluence,并提供一种用户友好的方式在JIRA中的结构中显示Confluence页面,并在JIRA中编辑这些页面。

答案 1 :(得分:0)

Jira有一种称为JRJC的东西:https://marketplace.atlassian.com/plugins/com.atlassian.jira.jira-rest-java-client/server/overview

这不是Atlassian的积极支持,但它可能会满足您的需求。

但是我建议您使用Jersey或其他任何东西,而不是仅限于使用Jersey,而不是仅限于使用Jersey API

我很幸运,Jira和Confluence使用REST API,jq和bash脚本相互交互。

这是我写的关于它的博客,其中包含源的github位置。 https://javamemento.blogspot.no/2016/05/jira-confluence-3.html

脚本是bash,但它可能会让你深入了解如何在java中使用它。但是,我没有使用搜索页面的汇合。

至于你的上一个问题,不,你需要为每个REST调用提供身份验证。