This Plugin gives some extremely nice features, like:
- Using prebuilt-in functions/tasks
- Running scripts in Transitions.
- Online (GUI) groovy scriprunner
Change Task Type
This actually gets hold on a clone and changes the "Task Type" Custom Field to "Clone", whereas on the Master it is still "Master"
import com.atlassian.jira.ComponentManager import com.atlassian.jira.issue.customfields.manager.OptionsManager def componentManager = ComponentManager.instance def optionsManager = componentManager.getComponentInstanceOfType(OptionsManager.class) def cf = customFieldManager.getCustomFieldObjects(issue).find {it.name == 'Task Type'} def fieldConfig = cf.getRelevantConfig(issue) def optionClone = optionsManager.getOptions(fieldConfig).find {it.value == "Clone"} issue.setCustomFieldValue(cf, optionClone)
Setting Issue values after "Create Subtask"
In This sample "transientVars" refers to the parent values
See issue properties/methods reference
issue.assignee == transientVars["issue"].assignee; issue.setDescription("A new Description"); issue.setSummary("Unit Test - " + transientVars["issue"].key);
Getting a Custom Field Value (String)
import com.atlassian.jira.ComponentManager; import com.atlassian.jira.issue.fields.CustomField; import com.atlassian.jira.issue.CustomFieldManager; CustomFieldManager customFieldManager = ComponentManager.getInstance().getCustomFieldManager(); CustomField UseCustomer = customFieldManager.getCustomFieldObject(10600); System.out.println("Custom field value: " + issue.getCustomFieldValue(UseCustomer));
Setting a Custom Field Value (String)
Taken the value fetched above:
issue.setCustomFieldValue(Customer,issue.getCustomFieldValue(UseCustomer))
This does not work for all field types (like labels).
Remove and Set labels
import com.atlassian.jira.ComponentManager import com.atlassian.jira.issue.fields.CustomField import com.atlassian.jira.issue.CustomFieldManager import com.atlassian.jira.issue.label.LabelManager import org.springframework.util.StringUtils labelManager = ComponentManager.getComponentInstanceOfType(LabelManager.class) CustomFieldManager customFieldManager = ComponentManager.getInstance().getCustomFieldManager(); CustomField UseCustomer = customFieldManager.getCustomFieldObject(10600); CustomField Customer = customFieldManager.getCustomFieldObject(10900); //Remove all labels labelManager.removeLabelsForCustomField(10900) def componentManager = ComponentManager.getInstance() def authContext = componentManager.getJiraAuthenticationContext() def user = authContext.getUser() //Set new label labelManager.setLabels(user, issue.id,<set>, false,false)
Links
https://jamieechlin.atlassian.net/wiki/display/GRV/Post+Functions