JIRA SERVER

Introduction

Imagine you have two instances SD and DEV and you need to synchronize issues from SD to DEV.

In SD you have a Cascading Select List customField, having two values: product (parent) & version (child).

You want to select the correct DEV project based on the cascading field parent value 'product'.

Let's say you have, for example following products and corresponding DEV projects:

  • product_X => PRODX
  • product_Y => PRODY
  • product_Z => PRODZ

The scripts below help to map the parent value from the cascading select list to the projects.

Sending side

Outgoing sync

replica.customFields."Product & Version" = issue.customFields."Product & Version"


Receiving side

 Map the parent value from the cascading select to the projects and if a mapping for the option is not found or the option is not selected, use PRODX as a default.

Incoming sync

def projectMapping = [
	"product_X": "PRODX"
	"product_Y": "PRODY"
	"product_Z": "PRODZ"
]

issue.projectKey = projectMapping[replica.customFields."Product & Version"?.value?.parent?.value] ?: "PRODX"


Drop the synchronization (indicate that you don't want to create an issue on your side) if you don't find a mapping.

Incoming sync

def projectMapping = [
	"product_X": "PRODX"
	"product_Y": "PRODY"
	"product_Z": "PRODZ"
]

def projectKey = projectMapping[replica.customFields."Product & Version"?.value?.parent?.value]

if (projectKey != null) {
  issue.projectKey = projectKey
  // your entire create processor goes here
  // ...
}


See Also