System specs:
What I am trying to get to work is linking a newly cloned issue to an Epic Issue that is the parent of the sub-task that we are cloning information from to create the new Issue.
I have found several examples on the web but have not seemed to be able to get any to work. I double checked that the issue type that I am creating has the "Epic Link" field on its create screen and it does. I have managed to get the epic link key but can not set it on the new issue.
So we have a transition that when fired does the following:
I finally deleted and rewrote the script in step 7 without actually setting the value on the new issue and it shows no errors. But any time I had option of setting the epic link it would just fail. So I am getting my subtasks but the new issue is not being linked under the epic it should.
Tried the following:
Here is relevant part of my script:
def newissue = (MutableIssue) issue
for (IssueLink link : relatedOutLinks)
{log.debug "outlink: " + link
log.debug "issue: " + link.getSourceObject()
log.debug "status: " + link.getSourceObject().getStatus()
log.debug "status name: " + link.getSourceObject().getStatus().name
}
for (IssueLink link : relatedLinks)
{log.debug "inLink: " + link
log.debug "issue: " + link.getSourceObject()
log.debug "status: " + link.getSourceObject().getStatus()
log.debug "status name: " + link.getSourceObject().getStatus().name
if (link.getSourceObject().getStatus().name == "Open") {
newissue = link.getSourceObject()
log.debug "New Issue: " + newissue}
}
// Here we are going to attempt to get epic link if it exists for the linked issues Parent
CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager();
IssueManager epicIssueManager = ComponentAccessor.getIssueManager();
CustomField epicLinkField = customFieldManager.getCustomFieldObject('customfield_10006'); // cf[10006] = Epic Link
def epicLinkKey = issue.getParentObject().getCustomFieldValue(epicLinkField) // gets value of Parent of original issue that has epic link
// If we find the epic key then we need to update newissue with this epic link
if (epicLinkKey != null) {
log.debug "newissue = " + newissue.key + " epicLinkKey = " + epicLinkKey
}
Here is log output showing that I am getting the new Issue number and the original master epic issue
console] inLink: com.atlassian.jira.issue.link.IssueLinkImpl@68aa28b5[id=85659,sourceId=98862,destinationId=98864,issueLinkType=10100]
[console] issue: ABC-47
[console] status: IssueConstantImpl[[GenericEntity:Status][sequence,1][statuscategory,2][name,Open][iconurl,/images/icons/statuses/open.png][description,The issue is open and ready for the assignee to start work on it.][id,1]]
[console] status name: Open
[console] New Issue: ABC-47
[console] inLink: com.atlassian.jira.issue.link.IssueLinkImpl@6143c41d[id=85707,sourceId=98911,destinationId=98864,issueLinkType=10001]
[console] issue: ABC-96
[console] status: IssueConstantImpl[[GenericEntity:Status][sequence,1][statuscategory,2][name,Open][iconurl,/images/icons/statuses/open.png][description,The issue is open and ready for the assignee to start work on it.][id,1]]
[console] status name: Open
[console] New Issue: ABC-96
[console] newissue = ABC-96 epicLinkKey = ABC-40
[console] Custom Field Value for Related I/O contains [JAVA05B]
[console] Creating Java Coding Subtask
ABC-47 - Task that has Epic Link to ABC-40
ABC-96 - New Issue Task cloned from sub-task linked to ABC-47
So in the step where there is an epic I just need to update ABC-96 with the Epic Link to ABC-40 and then just keep moving into the script to create the needed sub-tasks.