Skip to content

Instantly share code, notes, and snippets.

@chuikoaleksandr
Last active June 27, 2018 08:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chuikoaleksandr/e29407ca42d99e1daa455fb61401adac to your computer and use it in GitHub Desktop.
Save chuikoaleksandr/e29407ca42d99e1daa455fb61401adac to your computer and use it in GitHub Desktop.
To set the currentUser in the field(10130). Add this script on plugins/servlet/my-groovy/rest. GET /rest/my-groovy/latest/custom/(name)?issueKey=TEST-1
import groovy.json.JsonBuilder
import groovy.transform.BaseScript
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder;
import com.atlassian.jira.issue.ModifiedValue;
import com.atlassian.jira.event.type.EventDispatchOption
import javax.ws.rs.core.MultivaluedMap
import javax.ws.rs.core.Response
def isUserInGroup(user, String groupName) {
ComponentAccessor.getGroupManager().with {
isUserInGroup(user, getGroup(groupName))
}
}
def groups = ["jira-users"]
if(!(groups.find{isUserInGroup(currentUser, it)})){
return Response.status(404).build()
}
queryParams = uriInfo.getQueryParameters(true)
def issueKey = queryParams.getFirst('issueKey')
if(!issueKey){
return Response.status(404).build();
}
def cfIdDeveloper = 10130
def issue = getIssue(issueKey)
updateCustomFieldValue(issue, cfIdDeveloper, getCurrentUser(), getCurrentUser())
return Response.ok(issue.toString()).build();
def getCurrentUser(){
ComponentAccessor.jiraAuthenticationContext?.user
}
def updateCustomFieldValue(issue, Long customFieldId, newValue, user){
def customField = ComponentAccessor.customFieldManager.getCustomFieldObject(customFieldId)
issue.setCustomFieldValue(customField, newValue)
ComponentAccessor.issueManager.updateIssue(user, issue, EventDispatchOption.ISSUE_UPDATED, false)
}
def getIssue(String key){
ComponentAccessor.issueManager.getIssueObject(key)
}
def getCustomFieldValue(issue, Long fieldId){
ComponentAccessor.customFieldManager.getCustomFieldObject(fieldId)?.getValue(issue)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment