Assign a user based on a select list.

CK
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
October 17, 2020

Hey all,

I've gotten this exercise as a part of a job interview.

The exercise starts like this without any introduction.

  • Create a Software project for your mobile app
  • Add developers for iOS, android, and hybrid
  • Create a select list to specify the impacted technology for each story/ task
  • Add a script on creation to assign the developer per the skill needed (as per the select list selected) using ScriptRunner.

What I've did.

  • Created a new project.
  • Created three users called "IOS", "Android", "Hybrid" (Case sensitive).
  • Created a select list and filled it with "iOS", "Android", "Hybrid".
  • Created a listener in scriptrunner and added this script that should be triggered on issue created.
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.user.ApplicationUser

MutableIssue issue = event.issue as MutableIssue
//Managers
def issueManager = ComponentAccessor.issueManager
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def userManager = ComponentAccessor.userManager

//Newly created select list object
def developerSelectList = customFieldManager.getCustomFieldObject(10200)

//Get the value of the newly created select list
def developerSelectListValue = developerSelectList.getValue(issue)
//Current User triggering event
def loggedInUser = ComponentAccessor.jiraAuthenticationContext.loggedInUser
//ios, android, and hybrid assignee
ApplicationUser iosAssignee = userManager.getUserByName("IOS")
ApplicationUser androidAssignee = userManager.getUserByName("Android")
ApplicationUser hybridAssignee = userManager.getUserByName("Hybrid")


//Check which value is select then set assignee of issue
if(developerSelectListValue.equals("iOS"))
{
issue.setAssignee(iosAssignee)
issueManager.updateIssue(loggedInUser, issue, EventDispatchOption.DO_NOT_DISPATCH, false)
}
else if(developerSelectListValue.equals("Android")){
issue.setAssignee(androidAssignee)
issueManager.updateIssue(loggedInUser, issue, EventDispatchOption.DO_NOT_DISPATCH, false)
}
else if(developerSelectListValue.equals("Hybrid")){
issue.setAssignee(hybridAssignee)
issueManager.updateIssue(loggedInUser, issue, EventDispatchOption.DO_NOT_DISPATCH, false)
}
else{return}

And it is not working, any help?

1 answer

0 votes
SA
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
August 27, 2022

Hello, I have the same question for my interview. How did you solve it?

Suggest an answer

Log in or Sign up to answer