是否可以直接与Confluence通信,从自定义Jira插件中搜索/添加页面到空间等?
我目前有一个正在处理的Jira插件,它在问题查看器中显示一个面板,但想要在汇合中搜索特定页面,以显示它的链接(如果存在)。如果它不存在,我想有一个允许用户创建该页面的按钮。
我已经查看了REST API,它看起来应该做我想要的,但我可以直接使用JAVA类进行交互吗?
它们之间的单点登录是否允许我在JIRA的汇合下调用REST服务而不将身份验证放入REST调用中?
答案 0 :(得分:4)
简而言之:
我已经查看了REST API,它看起来应该做我想要的,但是我可以直接使用JAVA类进行交互吗?
没有。没有简单的java api可用:
ConfluenceService.searchPage(String title)
ConfluenceService.createPage(String parent, String title)
它们之间的单点登录是否允许我在JIRA的汇合下调用REST服务而不将身份验证放入REST调用中?
是
更详细:
您可以使用的java api是Application Link api和SAL 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。
根据您尝试完成的内容,查看Structure和Structure 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调用提供身份验证。