Release 8.x
8.10.0
HAPI update
We've developed HAPI updates for retrieving user date information and linking/unlinking issues with the issue type ID. Find out more details in the HAPI Changelog.
New features
8.9.0
User interface update to Listeners, Jobs, and Fragments
The Note field has been updated to Name for Listeners, Jobs, and Fragments. We have also made the Name field more prominent on the main pages for Listeners, Jobs, and Fragments, so you can easily identify your configurations.
New features
Bugs fixed
In this release, we've focused on fixing bugs to improve your experience of ScriptRunner for Jira Server/Data Center. See the Jira issues in the table below for more detailed information.
8.8.1
Bugs fixed
8.8.0
Script plugins update
We've done some work on the infrastructure supporting script plugins. As part of this, resources can now be exported and worked on in a script plugin. We are aiming to get closer to feature completion in the coming months.
Dynamic forms update
You can use optionsGenerator
within the select list annotation to customize your own list options. This is useful if you can't find a dynamic form annotation that is suitable for your purpose.
New HAPI code helper
We've added a HAPI code helper, also known as a linter, that detects where your scripts can be simplified with HAPI code and suggests an alternative. Find out more details, and information about how to enable/disable this feature, on the HAPI Code Helper page.
Documentation update: HAPI examples
We've created multiple new examples that incorporate HAPI in the scripts, ready for you to explore and customize to your Jira instance. Visit the new HAPI examples page to find out more.
Bugs fixed
8.7.1
Jira compatibility
ScriptRunner for Jira is now compatible with Jira 9.10.
8.7.0
Dynamic forms update
The workflow scheme picker field, which allows workflow selection, has been added as a dynamic form field. Check out the Dynamic Forms page for more information.
HAPI update
We've developed HAPI updates for using dot notation with Assets/Insight. We have also developed HAPI for working with issue, entity, and user properties. Find out more details in the HAPI Changelog.
Bugs fixed
In this release, we've focused on fixing bugs to improve your experience of ScriptRunner for Jira Server/Data Center. See the Jira issues in the table below for more detailed information.
New features
Bugs fixed
8.6.0
Dynamic forms update
The permission scheme picker field, which allows scheme selection, has been added as a dynamic form field. Check out the Dynamic Forms page for more information.
HAPI update
You can now reindex issues with HAPI. Check out the Reindex Issues documentation to learn more about reindexing issues.
New features
Bugs fixed
In this release, we've focused on fixing bugs to improve your experience of ScriptRunner for Jira Server/Data Center. See the Jira issues in the table below for more detailed information.
Bugs fixed
8.5.0
New built-in Listener
There is a new Execution failure notifier you can use to listen for script execution failures in your instance and to notify you of the failure. Check out the Execution Failure Notifier page for more information.
HAPI update
We've developed HAPI updates for creating an issue and Assets. Find out more details in the HAPI Changelog.
Bugs fixed
In this release, we've focused on fixing bugs to improve your experience of ScriptRunner for Jira Server/Data Center. See the Jira issues in the tables below for more detailed information.
New Features
Bugs Fixed
8.4.0
Documentation updates
We've identified another breaking change in Groovy 4 that can impact those who use the @Grab
annotation to import certain external libraries. The Groovy 4 Breaking Change for Grab Annotations page has more information on this breaking change and solutions on how to fix it.
Visit the new Vulnerabilities and Security to inform you on how we scan for vulnerabilities and common security concerns.
New bugs fixed
In this release, we've focused on fixing bugs to improve your experience of ScriptRunner for Jira Server/Data Center. See the Jira issues in the table below for more detailed information.
Bugs Fixed
8.3.0
HAPI update
You can now update comments using HAPI. Check out the Work with Comments page to learn more about what you can do with comments.
Snippets are now available for a custom script field
You will now see snippets when adding or updating a custom script field. You can use these snippets to help you develop a script for a script field.
New bugs fixed
In this release, we've focused on fixing bugs to improve your experience of ScriptRunner for Jira Server/Data Center. See the Jira issues in the table below for more detailed information.
New Features
Bugs Fixed
8.2.1
Bugs Fixed
8.2.0
New bugs fixed
In this release, we've focused on fixing bugs to improve your experience of ScriptRunner for Jira Server/Data Center. See the Jira issues in the table below for more detailed information.
Bugs Fixed
8.1.0
HAPI update
We've developed HAPI updates for comments and Assets. We've also simplified some examples for accessing links or attachments during a workflow transition. Find out more details in the HAPI Changelog.
New bugs fixed
In this release, we've focused on fixing bugs to improve your experience of ScriptRunner for Jira Server/Data Center. See the Jira issues in the tables below for more detailed information.
New Features
Bugs Fixed
8.0.0
Groovy 4 update
We have updated ScriptRunner for Jira Server/Data Center to Groovy 4!
Our primary motivator for this update is to provide support for JDK 17. Groovy 3 doesn't support JDK 17, and with Jira 9.5.0 and Confluence 8.0 being JDK 17 compatible, an upgrade to Groovy 4 is necessary.
So, apart from JDK 17 compatibility, what comes with this update and how will it benefit you?
New features in Groovy 4
The following are the most significant new features that have been added in Groovy 4 :
- Switch expressions which, unlike switch statements, are optimised towards branches that handle one case and break out rather than fall through to the next case.
- Sealed types
- Records
- Ranges have been enhanced with support for ranges open on the left, for example,
3<..5
, or both sides, for example,0<..<3
- Support for annotating generic types, for example
List<@IntRange(min = 0, max = 10) Integer>
Please have a look at the Groovy 4 Release Notes for a complete list of new features.
Breaking changes in Groovy 4
Groovy 4 contains a number of breaking changes. The ones which are the most significant, and likely to affect ScriptRunner users, are listed below. Please have a look at the Groovy 4 Release Notes for a complete list of breaking changes.
1) Changes to the resolution of properties with both a getter and isser returning different types
An isser is a method to retrieve boolean properties. Instead of the method name starting with get
(as is common for accessor methods), it starts with is
. See the JavaBean Properties tutorial for more information.
For properties that have a getter and an isser returning different types (for example, JiraAuthenticationContext#getLoggedInUser and JiraAuthenticationContext#isLoggedInUser) when accessing the property, instead of calling one of the methods (for example, jiraAuthenticationContext.loggedInUser
), the getter is called in Groovy 3 but the isser is called in Groovy 4 - see GROOVY-10821. You don't need to worry about updating scripts with the loggedInUser
property on JiraAuthenticationContext
as we have included a patch (see more below).
ScriptRunner for Jira patch
For backward compatibility reasons, ScriptRunner ships with a patch to keep the old Groovy 3 behaviour for two conflicting Jira API properties commonly used in customer scripts:
- The
loggedInUser
property onJiraAuthenticationContext
- The
created
property onIssue
We've included this patch as these properties will likely be heavily used in users' scripts. This means you do not need to change any code using these properties.
Solution for other properties
From Groovy 4 if you have custom classes, or are using external classes that implement conflicting isser and getter methods, and you are using the property syntax to get the getter value, you must re-write the logic to use the getter method directly.
For example, this class demonstrates conflicting isser and getter methods:
groovyclass GetterIsser { String getSomething() { 'yes' } boolean isSomething() { false } } def myClass = new GetterIsser() myClass.something // used to return 'yes', as of Groovy 4 will return false
From Groovy 4, this should be written as:
groovyclass GetterIsser { String getSomething() { 'yes' } boolean isSomething() { false } } def myClass = new GetterIsser() myClass.getSomething() // will return 'yes'
2) Legacy package removal
Groovy 3 provided duplicate versions of numerous classes (in old and new packages) to allow Groovy users to migrate towards the new JPMS compliant package names - see the section about it in Groovy 3 Release Notes for more details. Groovy 4 no longer provides the duplicate legacy classes.
For backwards compatibility reasons ScriptRunner still ships with deprecated version of groovy.util.XmlSlurper
and groovy.xml.XmlParser
. We recommend you don't use these legacy classes going forward and use their equivalents that can be found in groovy.xml
package.
3) Changes related to how Groovy code accesses private fields from within closures
Groovy developers are currently attempting to improve how its code accesses private fields in certain scenarios, where such access is expected but problematic. For example, within closure definitions where subclasses or inner classes are involved (GROOVY-5438). You may notice breakages in Groovy 4 code in such scenarios until they fix this issue.
4) Change to intersect
() default Groovy method
intersect()
default Groovy method used to draw elements from the second argument passed to it, but now it draws elements from the first argument passed to it - see GROOVY-10275.
5) Error message for users using @Grab
to import certain libraries
There has been a breaking change for users using @Grab
to import certain libraries. Check out the Groovy 4 Breaking Change for Grab Annotations page for more information on this breaking change and solutions on how to fix it.
Deprecated SrSpecification class removed
Authors of Script Plugins may be used to writing tests which extend the deprecated com.onresolve.scriptrunner.canned.common.admin.SrSpecification
class. This class has been removed. Authors of tests for their scripts should extend the spock.lang.Specification
class directly. The Test Runner Built-in Script should still pick up tests as normal.
HAPI update
We've made a breaking change related to retrieving the customer request type. Find out more details in the HAPI Changelog.
New Features
Bugs Fixed