Hi,
I want to copy version value from epic to task upon task creation using script runner.
Please my codes below:
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.link.IssueLink
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.issue.ModifiedValue
MutableIssue issue = issue
if (issue.getIssueType().name == "Epic"){
def customFieldManager = ComponentAccessor.getCustomFieldManager();
def issueLinkManager = ComponentAccessor.getIssueLinkManager()
List<IssueLink> outwardLinks = issueLinkManager.getOutwardLinks(issue.getId())
def epic_priority=issue.getFixVersions() as Collection
List<Issue> issueinepic = new ArrayList<Issue>();
for(int i=0;i<outwardLinks.size();i++){
if(outwardLinks[i].getIssueLinkType().getId()==10200){
def destObject = outwardLinks[i].getDestinationObject() as MutableIssue
def changeHolder = new DefaultIssueChangeHolder();
destObject.setFixVersions(epic_priority)
}
}
}
Thanks
Swarna
Hello Swarna,
Thank you for your answer.
As you can see on the answer provided by @[deleted] on this question, you can use the following script to copy the Affect version from Epics:
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.customfields.CustomFieldType
import com.atlassian.jira.issue.fields.CustomField
import org.apache.log4j.Category
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.ModifiedValue
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.fields.layout.field.FieldLayoutItemImpl
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.util.ImportUtils
CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager();
def issueManager = ComponentAccessor.getIssueManager()
// Check if Issue Type is Story
if (issue.getIssueType().getName() == "Story" ) {
// Get Custom Field as string (Epic Link)
def epicLinkCf = customFieldManager.getCustomFieldObjectByName("Epic Link")
// Get Custom Field Value as String
CustomField epicLink = customFieldManager.getCustomFieldObjectByName('Epic Link');
String EpicName = issue.getCustomFieldValue(epicLink);
if(EpicName){
// Get Epic from Issue
def epicIssue = issue.getCustomFieldValue(epicLinkCf) as Issue
// Get Fix Version from Epic
def currentValue = epicIssue.getFixVersions()
// Set Fix Version to Story
issue.setFixVersions(currentValue);
}
}
Of course, you can remove the commands to copy the Custom fields if you want to.
Please, let me know if it helps you.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.