This page describes how you can store advanced groovy scripts outside the Sync Rules processors.
This feature requires a development background, including a good understanding of Groovy, 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 email@example.com for more information.
Advanced synchronization scripts usually contain a huge number of code lines. Storing these scripts in the Sync Rules make it hard to maintain.
With a scripts-specific folder outside of the Sync Rules you can have your own scripts library. You can create your own advanced .groovy scripts and add them into the library. Then call the script from the library in the Sync Rules configuration. Exalate will start to pick external files.
External scripts library location
Jira Server: $JIRA_HOME/scripts
Jira Cloud: opt/jcloudnode/data/scripts
HP ALM/QC: opt/hpqcnode/data/scripts
Externalized scripts provide you an ability to configure a complex synchronization case with a reduced amount of code inside the Sync Rules.
It allows making changes to your Exalate configuration easier and version scripts whenever you need it. You can reuse the Sync Rules between Create and Change Processors. E.g: create a separate file with the incoming sync rules and call it from both the Create Processor and Change Processor. Or share/copy the scripts between different Connections.
To get autocompletion for all the variables available in the script and the Jira API (such as com.atlassian.jira.component.ComponentAccessor), configure the IDE to use shared Maven configuration repository. This helps to improve your scripting experience with Exalate. You can also version your scripts with any major change using version control systems.
Externalized scripts functionality allows to include following files:
- compiled .class
- packaged jar
- resources - plain text and binary resources
The scripts directory must have permissions to write and read directories/files.
- Check an example of how you can add an external script
- Set up advanced scripting environment
- Externalize your existing scripts