Hi All,
I have a challenging problem. I am trying to write a script that will transition the Feature (Parent to the Epic) when one of the linked Epics transition to In Progress.
I modified the normal JIRA hierarchy using Portfolio for JIRA. Now the hierarchy is as follows: Feature->Epic->Story->Sub task.
Kindly assist
Scripting Jira Portfolio is always tricky since they don't have a published Java API, but through divinations and sorcery we have discovered a few things.
You should be able to add a post function to the Epic issue's workflow that automatically transitions the issue described in its Parent Link custom field. Something like this should do it:
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.workflow.IssueWorkflowManager
def issueManager = ComponentAccessor.issueManager
def issueService = ComponentAccessor.issueService
def issueWorkflowManager = ComponentAccessor.getComponent(IssueWorkflowManager)
def user = ComponentAccessor.jiraAuthenticationContext.loggedInUser
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def parentLink = customFieldManager.getCustomFieldObjectByName('Parent Link')
def customFieldValue = issue.getCustomFieldValue(parentLink)
def parentKey = customFieldValue.key
def parentIssue = issueManager.getIssueByCurrentKey(parentKey)
def startProgressAction = issueWorkflowManager.getAvailableActions(issue, user).find{it.name == "Start Progress"}
def inputParams = issueService.newIssueInputParameters()
def validationResult = issueService.validateTransition(user, parentIssue.id, startProgressAction.id, inputParams)
if (validationResult.valid) {
def issueResult = issueService.transition(user, validationResult)
if (issueResult.valid) {
log.debug "Successfully transitioned $parentIssue.key"
} else {
log.error("Could not transistion $parentIssue.key to in progress following $issue.key")
log.error(issueResult.errorCollection?.errorMessages)
log.error(issueResult.warningCollection?.warnings)
}
} else {
log.error("Could not transistion $parentIssue.key to in progress following $issue.key")
log.error(validationResult.errorCollection?.errorMessages)
log.error(validationResult.warningCollection?.warnings)
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.