Retrieve Project Property and copy to custom field

Daniel Eads _unmonitored account_
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
July 20, 2016

We're sending a string to JIRA from another application and storing in a project property ( https://docs.atlassian.com/jira/REST/latest/#api/2/project/{projectIdOrKey}/properties-getPropertiesKeys ). How do you retrieve a property like this in a Scriptrunner post-function and store it in a custom field?

I've seen examples that use curl to make GET calls, but this seems a little silly because the data is already in JIRA (plus it also seems like bad practice to store a password in a workflow post function).

We're on JIRA 6.4 still. I see that there are ready-made postfunctions that can read user properties, but the API method for setting these from another application wasn't introduced until JIRA 7.

1 answer

0 votes
Jonny Carter
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
July 20, 2016

Most of the APIs for interacting with custom project properties are in the com.atlassian.core.ofbiz.util package.

The OFBizPropertyUtils class has a getPropertySet method (and more preferred getCachingPropertySet method) that retrieves those sort of values. I've yet to find an example for getting the GenericValue argument that doesn't utilize a deprecated method at some level, so you might prefer the other method signature that takes a string and a long.

If not, the Project class has a deprecated getGenericValue() method that you can use to retrieve the needed Generic value argument. There's also GenericDelegatorUtils class, which can get you a GenericDelegator with. From there,

def gv = genericDelegator.findByAnd("Project", ["id": projectId as Long])?.first()

Suggest an answer

Log in or Sign up to answer