I have a scenario when an Issue status is in specific status, I have to move from one status to other status by using IssueLinkCreatedEvent listener.
I found way to find the Issue status in IssueLinkCreatedEvent.
Thank you!!
Here is sample Code:
import com.atlassian.jira.issue.IssueManager;import com.atlassian.jira.component.ComponentAccessor;import com.atlassian.jira.issue.MutableIssueimport com.atlassian.jira.issue.Issueimport com.atlassian.jira.event.issue.IssueEventManagerimport com.atlassian.jira.event.issue.IssueEventimport com.atlassian.jira.event.type.EventDispatchOptionimport com.atlassian.jira.issue.ModifiedValueimport com.atlassian.jira.issue.util.DefaultIssueChangeHolderimport com.atlassian.jira.component.ComponentAccessorimport com.atlassian.jira.issue.link.IssueLinkManagerimport com.atlassian.jira.issue.link.IssueLinkTypeManagerimport com.atlassian.jira.event.issue.link.IssueLinkCreatedEventimport com.atlassian.jira.event.issue.link.IssueLinkDeletedEventimport com.atlassian.jira.event.issue.IssueEventimport com.atlassian.jira.issue.link.IssueLinkImplimport com.atlassian.jira.issue.IssueInputParametersImplimport com.atlassian.jira.bc.issue.IssueServiceimport com.atlassian.jira.bc.issue.IssueService.TransitionValidationResultimport org.apache.log4j.Loggerimport org.apache.log4j.Level
IssueManager im= ComponentAccessor.getIssueManager();def event = event as IssueLinkCreatedEvent
log.info("Event Class:"+event.getClass());log.info("DestinationObject: "+event.issueLink.destinationObject);log.info("Issue Link :"+event.issueLink);
def destinationObject = event.issueLink.destinationObject
MutableIssue issue=im.getIssueByCurrentKey(destinationObject.key);log.info("Issue Summary :"+issue.getSummary());log.info("Issue Type :"+issue.getIssueType().getName());log.info("Key :"+issue.getKey());
def status=issue.getStatus().getName();log.info("status: "+status);def actionId=141 //Status: Manager's Review def transitionValidationResultdef transitionResultdef currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
IssueService issueService = ComponentAccessor.getIssueService()
if(status == "Needs Review" && issue.getIssueType().getName()=="Thread"){transitionValidationResult = issueService.validateTransition(currentUser, issue.id, actionId,new IssueInputParametersImpl())if (transitionValidationResult.isValid()){transitionResult = issueService.transition(currentUser, transitionValidationResult)if (transitionResult.isValid()){log.info("Transitioned issue $issue through action $actionId")}else{log.info("Transition result is not valid") }}else{log.info("The transitionValidation is not valid")}}
It looks like you're new here. Sign in or register to get started.