JIRA CLOUD 

Disclaimer

 

To be able to develop advanced synchronization scripts you require a development background and a good understanding of Groovy and the entities of the underlying issue tracker and Exalate itself. 

In case of need, we can provide training and professional services to deliver the solution you're looking for.  Please contact sales@exalate.com for more information.

This page describes how to synchronize an agile project from JIRA Cloud Instance to JIRA Cloud Instance. It means that all agile information within the project will be synchronized. 

Agile information includes sprints, epics, issues with all data including statuses, change history, issue links, sub-tasks, typical issue custom fields, etc.

 

Pre-requisites: 

  • 2 Jira Cloud Instances
  • A project with data on the source side: Jira Cloud
  • A project on the destination side: Jira Cloud
  • Connection configured between the source and destination Cloud Jiras.
  • Global transitions on the destination side
    • To ensure that the status on the destination side is set correctly, there should be a global transition to each status in all workflows
      Global transitions allow any status in a workflow to transition to a particular status.  More information on this topic can be found on the Atlassian documentation

Description:

We have two Jira Cloud instances. One Jira Cloud agile project needs to sync to the other Jira Cloud. 

Limitations and caveats

  • The scripts are not synchronizing worklogs and time tracking related fields such as original and remaining estimate, time spent.
  • Most custom fields are supported and are automatically picked up.  Still, there might be some very specialized custom fields which would require specific processing
  • Sprint completion date is not synchronized
  • Projects need to be configured in a similar way - ie custom fields should have the same name, duplicate custom field names to be avoided 

 Configuration

Let's consider you already have the Connection configured between two Cloud Jiras. Now you need to configure Sync Rules to synchronize data between two agile projects.

Sync Rules scripts

Attention!

We provide scripts for demonstration purposes. Every script needs to be adapted for your specific use case.

Configure Synchronization processors with the scripts provided below.  Follow the link and copy its content to the different processors

Jira Cloud (source side)

Jira Cloud (destination side)

Data Filter Data Filter 
Create Processor Create Processor  
Change ProcessorChange Processor 

Attention!

 

The Create and Change processors have a SETTING section at the top that needs to be configured

// SETTINGS
def projectMapping = [
        "Remote Project 1": "Local Project 1",
        "Remote Project 2": "Local Project 2"
]
def issueTypeMapping = [
        "Remote Issue Type 1": "Local Issue Type 1"
] as Map<String, String>
def priorityMapping = [
        "Remote Priority 1": "Local Priority 1"
] as Map<String, String>

// enter the corresponding statuses of the source and destination issue
final def workflowMapping = [
        "Remote Status A" : "Local Status A",
        "Remote Status B" : "Local Status B",
        "Remote Status C" : "Local Status C"
] as Map<String, String>
// END: SETTINGS

Bulk Exalate

Bulk Exalate operation helps to synchronize multiple issues at a time. In order to use it you need to Create a Trigger on the sending side:

In the Exalate admin menu, access the triggers and create a new trigger. Include all issues in your project to be synchronized using the previously created relation. The relation towards the receiving instance ( Cloud Jira). Activate the trigger.

Use Bulk Exalate to synchronize multiple issues at a time.



Exalate is running through all the issues and sending out all the information from the Server instance to the Cloud instance. After a while, all issues will be showing up in the same configuration as on the Server instance.

 

Congratulations! Now you know how to configure an agile project live migration using Exalate application.

Note

 If you want to use this script, but you are missing a functionality or would like to get it adapted to your use case, send us a mail to support@exalate.com