The purpose of this script is to automatically add groups to the field in the request if one or another component is selected.
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.ModifiedValue
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.bc.group.search.GroupPickerSearchService
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.crowd.embedded.api.Group
import com.atlassian.jira.user.ApplicationUser
ApplicationUser currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def groupManager = ComponentAccessor.getGroupManager()
def multiGroupCf = customFieldManager.getCustomFieldObject(10261L);
def arrayOfComponents = issue.getComponents();
def groupList = getCustomFieldValue(issue,10261L)?:[];
for(def comp in arrayOfComponents){
if(comp.getName()=="Email (Почта)"){
groupList += [getGroup("jira-administrators")];
}
}
issue.setCustomFieldValue(cf, groupList.collect{it})
ComponentAccessor.getIssueManager().updateIssue(currentUser, issue, EventDispatchOption.ISSUE_UPDATED, false)
ApplicationUser getGroup(String groupName){
return ComponentAccessor.getGroupManager().getGroupByName(groupName)
}
def getCustomFieldValue(issue, Long fieldId) {
issue.getCustomFieldValue(ComponentAccessor.customFieldManager.getCustomFieldObject(fieldId))
}