JIRA Builtin Script Listener - Create a sub-task. - How to set assignee?

Martin Novák February 3, 2014

I am using JIRA Builtin Script Listener - Create a sub-task. to create subtasks for Dev and QA for every story and bug in JIRA.

I would like the subtasks to be always assigned to user "Virtual QA". It seems that I have to do this through Additional issue actions field. I am trying to use:

issue.summary = ('QA: ' + issue.summary)
issue.assignee = 'Virtual QA'

This works only if I use only the first line to set the subtask summary but when I add the second line the script does not run. Can you please help me to solve it?

I was not able to help myself using the official documentation on:https://jamieechlin.atlassian.net/wiki/display/GRV/Built-In+Scripts

I have also tried solutions from https://answers.atlassian.com/questions/66562/set-assignee-to-some-specific-user-in-post-function-scriptAs Georgiy Senenkov Jul 03 '12 at 07:51 AM said, neither of the proposed solutions work. I tried all the described solutions and it did not work for me.

1 answer

1 accepted

0 votes
Answer accepted
Henning Tietgens
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.
February 4, 2014

You could not use a string of the user display name to set the assignee. You have to set the corresponding user object (com.atlassian.crowd.embedded.api.User) or you could use issue.assigneeId = 'userkey' (be aware that this is not the display name but the user key, which is the login name if you didn't renamed the user).

Martin Novák February 4, 2014

Thank you for your response. I am not able to find the userkey for the user, username does not work, mail which is used as login does not work and full name does not work to and I dont have direct access to database to verify.

How can I use the com.atlassian.crowd.embedded.api.User?

I need some line of code like issue.assigneeId = UserManager.findIdbyUsername("Virtual QA")

Henning Tietgens
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.
February 5, 2014

Ok, here some code to give you a clue.

import com.atlassian.crowd.embedded.api.User
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.user.ApplicationUser
import com.atlassian.jira.user.util.UserUtil

UserUtil userUtil = ComponentAccessor.getUserUtil()

// If you want a User object
User u = userUtil.getUser('username')

// If you need the key of a user (which don't change, so this could be done in the console and the key could be used in your scripts
ApplicationUser au = userUtil.getUserByName('username')
String key = au.getKey()

Martin Novák February 6, 2014

This works, thank you for the direction :)

import com.atlassian.jira.component.ComponentAccessor
issue.summary = ('QA: ' + issue.summary)
issue.setAssignee(ComponentAccessor.getUserUtil().getUser('qa'))

Suggest an answer

Log in or Sign up to answer