Extract user value from jira custom field and add it to group

I am trying to get user name from a JIRA custom filed and put it into a group . how can i achieve this using groovy or any postfunction in jira .I am trying to do this using Workflow post-function . Any other solution is welcome .

Eg : field A = user1 

i want to add "user1" to group "Jiraxyz" .

help 

Abyakta

1 answer

1 accepted

1 vote
Vasiliy Zverev Community Champion Jan 13, 2017

Here is code for script postfunction provided by ScriptRunner plugin:

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.security.groups.GroupManager
import com.atlassian.jira.user.ApplicationUser

Issue issue
GroupManager groupManager = ComponentAccessor.getGroupManager();
groupManager.addUserToGroup(
        ((ApplicationUser) issue.getCustomFieldValue(ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("field name"))).getDirectoryUser()
        , groupManager.getGroup("groupName")
)

@Vasiliy Zverev @Vasiliy Zverev above code is giving error .

failed on issue: ABCD-5989, actionId: 11, file: <inline script>

java.lang.NullPointerException: Cannot invoke method getCustomFieldValue() on null object

 at Script23.run(Script23.groovy:9)


What i did :

I pasted the above code with groupName and customfield change in the postfunction.

Let me know if i am doing anything wrong


Abyakta

Vasiliy Zverev Community Champion Jan 15, 2017

This error namely means that custom field is empty to given issue. Here is updated code to fix this case:

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.security.groups.GroupManager
import com.atlassian.jira.user.ApplicationUser

GroupManager groupManager = ComponentAccessor.getGroupManager();
try {
    groupManager.addUserToGroup(
            ((ApplicationUser) issue.getCustomFieldValue(ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("field name"))).getDirectoryUser()
            , groupManager.getGroup("groupName")
    )
}
catch (NullPointerException e){
    
}

Thanks @Vasiliy Zverev @Vasiliy Zverev . This works .

Suggest an answer

Log in or Sign up to answer
How to earn badges on the Atlassian Community

How to earn badges on the Atlassian Community

Badges are a great way to show off community activity, whether you’re a newbie or a Champion.

Learn more
Community showcase
Posted Wednesday in Jira

Join our webinar: How 1B+ feature flag events helped us build the new Jira

Every time you release software, there's a bit of risk – that there's a bug, that something breaks, or that the feature doesn't resonate with customers. Feature flagging helps make high stakes s...

93 views 0 1
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you