Workflow:
My script is really close. When I hard-code in a user group, everything works. My problem is when I pull the group from the Peer Review Task, I am getting "[com.atlassian.crowd.embedded.impl.ImmutableGroup@6e019bb3]" instead of the group name "TCR_Admin".
I am using JIRA Server version 6.3.15 and ScriptRunner version 4.1.3.9
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.crowd.embedded.api.Group
import com.atlassian.jira.user.ApplicationUsers
import com.atlassian.jira.user.util.UserUtil
import com.atlassian.crowd.embedded.api.User
Issue parentIssue = issue
//Dont run this script on a subtask
if (parentIssue.isSubTask())
return
//log behaviors against current user
def user = ComponentAccessor.getJiraAuthenticationContext().getUser()
//Get the group name from the original issue
def issueManager = ComponentAccessor.getIssueManager()
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def groupfield = customFieldManager.getCustomFieldObjectByName("Peer Review Group")
def groupname = parentIssue.getCustomFieldValue(groupfield) as String
//def groupname = "TCR_Admin" //>> Manually setting the group makes the script work
//parentIssue.summary = groupname as String //>>The group name displays as "[com.atlassian.crowd.embedded.impl.ImmutableGroup@6e019bb3]"
//Find how many users in the group (equals how many subtasks to make)
def groupManager = ComponentAccessor.getGroupManager()
def GroupSize = groupManager.getUsersInGroup(groupname).size()
int max = GroupSize
//Set up to create and link new issues
def issueFactory = ComponentAccessor.getIssueFactory()
def subTaskManager = ComponentAccessor.getSubTaskManager()
def constantManager = ComponentAccessor.getConstantsManager()
//Create a subtask and assignee a subtask for each member of the group
def assignee;
int i;
for (i = 0; i < max; i++) {
MutableIssue newSubTask = issueFactory.getIssue()
newSubTask.setSummary("subtask summary")
assignee = groupManager.getUsersInGroup(groupname).get(i).getName() //Throws a typecheck error but works okay
newSubTask.setAssigneeId(assignee)
newSubTask.setParentObject(parentIssue)
newSubTask.setProjectObject(parentIssue.getProjectObject())
newSubTask.setIssueTypeId(constantManager.getAllIssueTypeObjects().find{
it.getName() == "Sub-task"
}.id)
// Add any other fields you want for the newly created sub task
Map<String,Object> newIssueParams = ["issue" : newSubTask] as Map<String,Object>
issueManager.createIssueObject(user.directoryUser, newIssueParams)
subTaskManager.createSubTaskIssueLink(parentIssue, newSubTask, user.directoryUser)
}
Hi Kassidy
Try something like
def cf = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("GroupPicker")
// either a single or multi group picker it always return a list of group/s
def group = issue.getCustomFieldValue(cf)
// if there is actually a group het it's name
def groupName = group ? group[0].name : nullPlease let me know if this does the trick.
regards, Thanos
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Please could someone paste here updated working script for jira version 7.X
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Thanos Batagiannis [Adaptavist] This looks very exciting. I'm eager to try this but in my case I'm trying to have the script create subtasks for each user listed in a custom (user-picker) field. Do you have a suggestion for replacing the references to "group" with perhaps the user from the custom field value?
def cf = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("UserPicker") // either a single or multi USER picker it always return a list of user/s def group = issue.getCustomFieldValue(cf) // if there is actually a user get that user from the custom field of the parent NOT SURE What to do here???
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
A note for anyone using this script in the future:
If you are using JIRA v.7 or later, you will need to change the two instances of "user.directoryUser" to "user".
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Steve, I am trying to display the Group name in the custom email using Scriptrunner, here is the code I am using but still get the Immutablegroup in response:
${issue.getCustomFieldValue(com.atlassian.jira.component.ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Assigned Group"))}
Any help would be much appreciated
Thanks
Ankit
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.