Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Unable to Set assignee using ScriptRunner

Piyush_Annadate
Contributor
October 30, 2019

With the below code - Trying to set the assignee to someone else based on the user (name: Piyush Annadate and userKey as Piyush_Annadate).


This doesn't event assign the issue to other person. What's missing?

 

Scriptrunner- 5.4.49

JIRA  7.13.1 (Server)

 

 

 

import com.atlassian.jira.component.ComponentAccessor
import org.apache.log4j.Logger
import org.apache.log4j.Level
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.issue.MutableIssue
def log = Logger.getLogger("com.acme.workflows")
log.setLevel(Level.DEBUG)
def issueManager = ComponentAccessor.getIssueManager()
def issueService = ComponentAccessor.getIssueService()
def userManager = ComponentAccessor.getUserManager()
//def issue = issueManager.getIssueObject("HW_TEST-64")

def issue = event.issue
log.info("${issue.projectObject.key}")
log.info("${issue.key}")

def user = ComponentAccessor.getUserManager().getUserByName('Piyush_Annadate')
def validateAssignResult = issueService.validateAssign(user, issue.id, issue.reporterId)
issueService.assign(user, validateAssignResult)

1 answer

1 accepted

0 votes
Answer accepted
PD Sheehan
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
October 30, 2019

The user in issueService.validateAssign and issueService.assign is the user performing the action.

The 3rd argument in validateAssign (String assignee) is the assignee you wish to apply.

Try this instead

import com.atlassian.jira.component.ComponentAccessor
import org.apache.log4j.Logger
import org.apache.log4j.Level
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.issue.MutableIssue
def log = Logger.getLogger("com.acme.workflows")
log.setLevel(Level.DEBUG)
def issueManager = ComponentAccessor.getIssueManager()
def issueService = ComponentAccessor.getIssueService()
def userManager = ComponentAccessor.getUserManager()
//def issue = issueManager.getIssueObject("HW_TEST-64")
def currentUser = ComponentAccessor.jiraAuthenticationContext.loggedInUser

def issue = event.issue
log.info("${issue.projectObject.key}")
log.info("${issue.key}")

def user = ComponentAccessor.getUserManager().getUserByName('pjp')
def validateAssignResult = issueService.validateAssign(currentUser, issue.id, user.name)
if(validateAssignResult.isValid()){
issueService.assign(currentUser, validateAssignResult)
}
Piyush_Annadate
Contributor
October 30, 2019

Thanks Peter for the change and the explanation. That worked !! :) 

Suggest an answer

Log in or Sign up to answer