...
When you do a GET on an issue containing insight custom field value it will return an array of values like this [“My object (thekey-123)“,”My other object (thekey-456)”] to extract the key from that use a groovy variable with the lines below.
The action structure will look like this:
Add a GET request on the issue, this will return the issue as a json representation
add an iterator with $.fields.customfield_10234 (the id of the custom field that holds the insight values)
Add a POST create issue request with the body below
Code Block { "fields": { "project": { "id": "7543" }, "summary": "The summary", "issuetype": { "id": "3" }, "customfield_11230":"{{issue.key}}", "customfield_10234": [{"key": "{{extractInsightKey}}"}] } }
Groovy variable {{extractInsightKey}} It will return thekey-123 and thekey-456
Code Block |
---|
def regexp = /\(([^\)]+)\)/ def matcher = response =~ regexp return matcher.getAt(0)[1] |
Adding a custom field option
The groovy code adds a new custom field option, add it to a groovy variable and use the response to set line 9, value variable.
Code Block | ||
---|---|---|
| ||
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.util.I18nHelper;
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def optionsManager = ComponentAccessor.getOptionsManager()
def value = "HELLO WORLD!"
def updField = customFieldManager.getCustomFieldObject("customfield_10214")
def fieldConfig = updField.getRelevantConfig(issue)
def currentOptions = optionsManager.getOptions(fieldConfig)
def newSeqId = currentOptions*.sequence.max() - 1
def option = optionsManager.createOption(fieldConfig, null, newSeqId, value)
|