Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Excerpt
hiddentrue

 Post function to automatically create Confluence page within JIRA Jira workflow.

Easy IntegrationIntegrations comes with a handy post function in order to create Confluence pages via JIRA via Jira workflow transitiontransitions. The issue's field/custom field values can be used to generate Confluence pages from templates.

Here are the steps:

  • Go to the desired transition of within your workflow, switch to the Post functions tab, and click on on the Add post function link.
  • Locate the Create Confluence Page using a template page post function and click click the Add button.

Image RemovedImage Added

...

Post Function Name

You can give create a name to for your post function.

Image RemovedImage Added

...

Type of Confluence Connection

This initial step is to select the Confluence connection. There are two options for this:

  1. Credential: Choose Credential if you want to use Confluence connection which is defined via via the Easy Integration Integrations Confluence setting. If there is no defined credential, this option won't will not be seen.Image Added
  2. Application Link: If you want to use the Jira application link , then choose this option. If there are multiple application links , you can choose an appropriate one , and if there is no application link in your Jira, this option won't will not be seen.

...

Image Added   

...

Condition           

...

In this part, you can add a condition for the confluence page.   By By default, it has can only return true statement statements which means that the Confluence page will be created. However, you can type your own script in order to programmatically add a condition to create a Confluence page or not. 

Image RemovedImage Added                                                                                                     

   Below, Below is a sample code snippet for a condition which checks the logged-in user should be the reporter of the issue:

Code Block
firstline1
titleCondition Code Example
linenumberstrue
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.user.ApplicationUser
 
ApplicationUser currentUser = ComponentAccessor.getJiraAuthenticationContext().loggedInUser
log.info("current user:" + currentUser.username)
def reporter = issue.reporter.username
log.info("reporter: " + reporter)
return reporter.equals(currentUser.username)


...

Template

...

For the template

...

, you have two options:

  1. Templates
  2. Confluence Page

You can choose any global and space templates or page in your Confluence to be a template for this post function. See creating a template page with dynamic parameters. 

There is a Confluence Search input in which you can start typing the title of the Template or Confluence Page. 

Warning

We're not currently supporting Confluence Templates, please select any page as a template.

...

Info

If you leave the Space Key input blank, it will search only global Templates.

Image Added

...

Selecting The Folder Where Generated Pages Will be Created

Similar to the first step, choose the folder (Confluence Page) where you want your automatically created Confluence pages will to be automatically created. 
Image RemovedImage Added

...

Page Content

Page title and content are defined in this section.

Page Title: As you know, Confluence does not permit the same page title within the same space. So, adding a unique key to the page (like JIRA the Jira issue key) would be wise.

Request bodyBody: Leave this blank if you are not an experienced user , and you want to follow the standards. Click on the Load default body to modify the link  link if you want to see and change the request JSON body. Otherwise, leave it blank.

Parameters: Add You can define static or dynamic parameters here using Groovy Script. Some sample parameters are shown below. These parameters can be used within double curly-braces in a Confluence pageImage Removed

Image Added

Some code example below;:

Panel
def parameters = [:]

parameters["assignee
= $issue.assignee or {{
"] = issue.assignee
}}
reporter = {{issue.reporter}}
date = $issue.created
formattedDate = $DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm").format($issue.created)
productName = $issue.getCustomFieldValue($customFieldManager.getCustomFieldObject('customfield_11100'))
price = $issue.getCustomFieldValue($customFieldManager.getCustomFieldObject('customfield_11102'))
displayName = $user.displayName
userDisplayName = $ComponentAccessor.getUserManager().getUserByName("someUser").getDisplayName() // you can also use ComponentAccessor
story point = $issue.getCustomFieldValue($customFieldManager.getCustomFieldObject('customfield_11101'))
environment = Production
comment = $comment // this is the comment that is passed through the transition
Info

If you want to leave empty if no value specified, add ! after $ sign. e.g.:

story point = $!issue.getCustomFieldValue($customFieldManager.getCustomFieldObject('customfield_11100'))

...


parameters["reporter"] = issue.reporter

def userManager = ComponentAccessor.getUserManager()
parameters["userDisplayName"] = userManager.getUserByName("someUserName").getDisplayName()

def cf = customFieldManager.getCustomFieldObject("customfield_xxxxx")
def price = issue.getCustomFieldValue(cf)
parameters["price"] = (null != price) ? price : "No price defined"

return parameters


...

Update Page

If you enable this option, the post function will update the Confluence page if it already exists.

Image RemovedImage Added

...

View of Post Function

Image RemovedImage Added

Info

To automatically link the JIRA Jira issue and Confluence page, please use JIRA Jira macro in Confluence . (See see sample usage here).