How do I import Confluence classes into JIRA ScriptRunner?

Eric Dierkens August 2, 2017

Whewnever I try to include and import classes for Confleunce, they are not recognized. The following statements are not recogized when using ScriptRunner for JIRA. I want to update a Confleuce page from JIRA.

import com.atlassian.confluence.pages.Page
import com.atlassian.confluence.pages.PageManager
import com.atlassian.confluence.core.DefaultSaveContext

 

1 answer

1 accepted

0 votes
Answer accepted
Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
August 2, 2017

That's because the stuff you are trying to import in JIRA is not there.  JIRA doesn't need Confluence libraries because it's not Confluence.

To update a Confluence page from JIRA, write scripts that use the REST interface to update Confluence remotely.

Eric Dierkens August 3, 2017

Thanks. I've written the REST portion to get the info. Now just need to figure out how to enable the script event. For some reason it's not firing.

log.info("eWebRequest Form Event Fired")   import com.atlassian.confluence.event.events.content.page.PageEvent import com.atlassian.confluence.spaces.Space import com.atlassian.confluence.pages.Page   def event = event as PageEvent   Page page = event.getPage() Space space = page.getSpace()   if (page.getSpace() != 'eWebProjects') {     log.info("eWebRequest Form Event  - 1")     return }   // Is the page-type eWebRequest? import com.atlassian.applinks.api.ApplicationLink import com.atlassian.applinks.api.ApplicationLinkService import com.atlassian.applinks.api.application.confluence.ConfluenceApplicationType import com.atlassian.sal.api.component.ComponentLocator import com.atlassian.sal.api.net.Request import com.atlassian.sal.api.net.Response import com.atlassian.sal.api.net.ResponseException import com.atlassian.sal.api.net.ResponseHandler import com.atlassian.sal.api.net.ReturningResponseHandler import groovy.json.JsonBuilder   //import com.atlassian.confluence.pages.CommentManager   def ApplicationLink getPrimaryConfluenceLink() {     def applicationLinkService = ComponentLocator.getComponent(ApplicationLinkService.class)     final ApplicationLink conflLink = applicationLinkService.getPrimaryApplicationLink(ConfluenceApplicationType.class);     conflLink }   def confluenceLink = getPrimaryConfluenceLink() assert confluenceLink // must have a working app link set up   def authenticatedRequestFactory = confluenceLink.createAuthenticatedRequestFactory()   // Get create content response body as a map def contentResponse = authenticatedRequestFactory         .createRequest(Request.MethodType.POST, "rest/api/content/" + page.id + "/page-type?")         .addHeader("Content-Type", "application/json")         .executeAndReturn(new ReturningResponseHandler<Response, Map>(){     @Override     Map handle(Response response) throws ResponseException {         if (response.statusCode == HttpURLConnection.HTTP_NOT_FOUND)         {             log.info("eWebRequest Form Event  - 2")             return         }                 if (response.statusCode != HttpURLConnection.HTTP_OK) {             log.info("eWebRequest Form Event  - 3")             throw new Exception("Get page-type failed: " + response.getResponseBodyAsString())         }           return response.getEntity(Map)     } })   if (contentResponse.value != 'eWebRequest') {     log.info("eWebRequest Form Event  - 4")     return }   // TESTING ONLY log.info("eWebRequest Form Event Success")

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events