A simple example code: function getCurrentUser(issueId)
import com.atlassian.jira.component.ComponentAccessor import com.atlassian.sal.api.user.UserManager import com.onresolve.scriptrunner.runner.rest.common.CustomEndpointDelegate import groovy.json.JsonBuilder import groovy.transform.BaseScript import javax.servlet.http.HttpServletRequest import javax.ws.rs.core.Response import javax.ws.rs.core.MultivaluedMap @BaseScript CustomEndpointDelegate delegate getCurrentUser(httpMethod: "GET", groups: ["jira-software-users"]) { MultivaluedMap queryParams, body, HttpServletRequest request -> def userManager = ComponentAccessor.getOSGiComponentInstanceOfType(UserManager) def userProfile = userManager.getRemoteUser(request) def issueId = queryParams.getFirst("issueId") as String return Response.ok(new JsonBuilder([currentUser: userProfile?.username, issueId: issueId]).toString()).build(); }
Example query: /rest/scriptrunner/latest/custom/getCurrentUser?issueId=KEY-111
Example result:
{"currentUser":"rpelaez","issueId":"KEY-111"}
By MrAddon
.
Hello MrAddon,
this is very useful because sometimes, when you run REST Endpoints you want to know who does the action.
Great job!
LikeLiked by 2 people