How do I create a post function to auto assign to specific users based on the project?

Gordon Ngo November 29, 2016

I have multiple projects that use the same workflow.  However, each project has different leads from different groups.  At certain transitions, i would like to auto assign the issue to the relevant lead (Dev, QA, etc.) based on the Project.

1 answer

1 accepted

0 votes
Answer accepted
Vasiliy Zverev
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.
November 29, 2016

Replace key1 as project keis and usernames as actual user names.

import com.atlassian.jira.component.ComponentAccessor

switch (issue.getProjectObject().getKey()){
    case "key1": issue.setAssigneeId(ComponentAccessor.getUserManager().getUserByName("username1")); break;
    case "key2": issue.setAssigneeId(ComponentAccessor.getUserManager().getUserByName("username2")); break;
    case "key3": issue.setAssigneeId(ComponentAccessor.getUserManager().getUserByName("username3")); break;
}

This will assing issue to project lead:

issue.setAssigneeId(issue.getProjectObject().getLeadUserKey())
Gordon Ngo November 30, 2016

When I put that into the custom script field and update the keys/user names, I get errors on the case lines saying:

"Cannot find matching method

com.atlassian.jira.issue.MutableIssue#setAssigneeID(com.atlassian.jira.us (remainder is cut off)

Please check if the declared type is right and if the method exists."

Vasiliy Zverev
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.
November 30, 2016

Here is updated script:

import com.atlassian.jira.component.ComponentAccessor

switch (issue.getProjectObject().getKey()){
    case "key1": issue.setAssigneeId(ComponentAccessor.getUserManager().getUserByName("username1").getName()); break;
    case "key2": issue.setAssigneeId(ComponentAccessor.getUserManager().getUserByName("username2").getName()); break;
    case "key3": issue.setAssigneeId(ComponentAccessor.getUserManager().getUserByName("username3").getName()); break;
}
Gordon Ngo December 1, 2016

That worked.  Thank you.

Suggest an answer

Log in or Sign up to answer