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?