Hey Community... I'm new to scriptrunner and I'm attempting to do the following...
on issue creation of a specific type of issue (this part is handled in the listener)
I want to add a label (which that part seems to work)
set the Epic link to a specific epic (that part does not work)
set the issue status to a status that is not the default (that part does not work)
and extra bonus would be is logging actually worked so that I can debug stuff myself.
here is what I got so far... what should I do to make this better? (oh and also work as expected)
I am a novice with groovy
import com.onresolve.scriptrunner.runner.util.UserMessageUtil
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.label.LabelManager
import com.atlassian.jira.issue.label.Label
import org.apache.log4j.Logger
import org.apache.log4j.Category
def Category log = Category.getInstance("com.onresolve.jira.groovy")
log.setLevel(org.apache.log4j.Level.ALL)
def user = ComponentAccessor.jiraAuthenticationContext?.getLoggedInUser()
def labelManager = ComponentAccessor.getComponent(LabelManager)
labelManager.addLabel(user,issue.id, "support-product", false)
log.debug("label added")
def issueManager = ComponentAccessor.getIssueManager()
def epicIssue = issueManager.getIssueObject("SCMNEW-7") // Support requests epic
def epicLink = customFieldManager.getCustomFieldObjectByName('Epic Link')
issue.setCustomFieldValue(epicLink, epicIssue)
issue.setStatusId('22')
log.debug("Set the status")
log.debug("set epic link")
UserMessageUtil.success("Created issue for SCM.")
got it working.. BUT I'm willing to learn if someone wants to improve or if I make mistakes
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.label.LabelManager
import com.atlassian.jira.issue.label.Label
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.IssueInputParametersImpl
import com.atlassian.jira.issue.ModifiedValue
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.bc.issue.IssueService
def user = ComponentAccessor.jiraAuthenticationContext?.getLoggedInUser()
def labelManager = ComponentAccessor.getComponent(LabelManager)
def issueManager = ComponentAccessor.getIssueManager()
def issue = issueManager.getIssueObject(event.issue.key)
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def epicIssue = issueManager.getIssueObject("SCMNEW-7") // Support requests epic
def epicLink = customFieldManager.getCustomFieldObjectByName('Epic Link')
IssueService issueService = ComponentAccessor.getIssueService()
def actionId = 51 // change this to the step that you want the issues to be transitioned to
def transitionValidationResult
def transitionResult
// set the Label
labelManager.addLabel(user,issue.id, "support-product", false)
// set the Epic Link
issue.setCustomFieldValue(epicLink, epicIssue)
issueManager.updateIssue(user, issue, EventDispatchOption.ISSUE_UPDATED, true)
// transition the issue to new status
log.debug("The issue type is: " + issue.getIssueType().name)
transitionValidationResult = issueService.validateTransition(user, issue.id, actionId,new IssueInputParametersImpl())
if (transitionValidationResult.isValid()) {
transitionResult = issueService.transition(currentUser, transitionValidationResult)
if (transitionResult.isValid())
{ log.debug("Transitioned issue $issue through action $actionId") }
else
{ log.debug("Transition result is not valid") }
}
else {
log.debug("The transitionValidation is not valid")
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.