Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ru.toolstrek.script_endpoints
- import com.atlassian.jira.bc.issue.IssueService
- import com.atlassian.jira.component.ComponentAccessor
- import com.onresolve.scriptrunner.runner.rest.common.CustomEndpointDelegate
- import groovy.json.JsonException
- import groovy.transform.BaseScript
- import groovy.json.JsonSlurper
- import javax.ws.rs.core.MultivaluedMap
- import javax.ws.rs.core.Response
- import org.apache.log4j.Level
- import org.apache.log4j.Logger
- def log = Logger.getLogger("ru.toolstrek.script_endpoints.inline.opsgenie")
- log.setLevel(Level.DEBUG)
- def slurper = new JsonSlurper()
- def issueService = ComponentAccessor.getComponentOfType(IssueService.class)
- def cfField = ComponentAccessor.customFieldManager.getCustomFieldObjectsByName("Test Field").first()
- def PROJECT_ID = 12345L
- def ISSUE_TYPE_ID = "10100"
- @BaseScript CustomEndpointDelegate delegate
- opsgenie(httpMethod: "POST", groups: ["jira-administrators"]) { MultivaluedMap queryParams, String body ->
- // Parse data
- def data
- try {
- data = slurper.parseText(body)
- } catch(JsonException ex) {
- log.error("Error parsing data from OpsGenie: ${ex}")
- return Response.serverError().build()
- }
- def priorityId = "3"
- def reporterKey = "admin"
- def reporter = ComponentAccessor.userManager.getUserByKey(reporterKey)
- def summary = "test summary"
- def cfValue = "test value"
- // Create new issue
- def taskIssueParameters = issueService.newIssueInputParameters()
- taskIssueParameters.setProjectId(PROJECT_ID)
- .setPriorityId(priorityId)
- .setReporterId(reporterKey)
- .setIssueTypeId(ISSUE_TYPE_ID)
- .setSummary(summary)
- .addCustomFieldValue(cfField.id, cfValue)
- def createTaskValidationResult = issueService.validateCreate(reporter, taskIssueParameters)
- if (createTaskValidationResult.isValid()) {
- def createTaskResult = issueService.create(reporter, createTaskValidationResult)
- if (!createTaskResult.isValid()) {
- log.error("Error creating issue from OpsGenie data: ${data}")
- return Response.serverError().build()
- }
- } else {
- log.error("Error validating data from OpsGenie: ${createTaskValidationResult.errorCollection}")
- return Response.serverError().build()
- }
- return Response.ok().build()
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement