2

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

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

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

它们之间的单点登录是否允许我从 JIRA 调用 REST 服务,而无需将身份验证放入 REST 调用中?

4

2 回答 2

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 可以轻松地将 REST 请求发送到 Confluence 并处理响应。它还使用 JIRA 中应用程序链接中的配置来处理身份验证。

有关更详细的示例,包括搜索 Confluence 页面,请查看本教程

根据您要完成的工作,可能还值得查看StructureStructure Pages附加组件。他们的目标是更紧密地集成 JIRA 和 Confluence,并提供一种用户友好的方式来在 JIRA 的结构中显示 Confluence 页面并在 JIRA 中编辑这些页面。

于 2016-05-15T18:44:28.313 回答
0

Jira 有一个叫做 JRJC 的东西:https ://marketplace.atlassian.com/plugins/com.atlassian.jira.jira-rest-java-client/server/overview

Atlassian 并未积极支持此功能,但它可能会满足您的需求。

但与其将自己限制在 JRJC,我建议你使用 Jersey 或其他任何东西,直接使用 REST API

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

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

该脚本在 bash 中,但它可能会让您深入了解如何从 java 中使用它。但是,我没有在 Confluence 上搜索页面。

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

于 2016-05-16T16:50:26.483 回答