Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Call web-service for merge check

Svante Gustafsson October 18, 2018

Hey,

I have a script that calls an external web-service for a merge check bit I cannot get it to work as a conditional merge check

// This webhook is calling a REST API with the current PR id as a parameter
import groovy.json.JsonSlurper;
import groovy.json.JsonBuilder;
import groovy.json.StreamingJsonBuilder;

def get(String url) {
def connection = url.toURL().openConnection()
connection.setRequestMethod("GET")
connection.doOutput = false
def cont = connection.content.text
connection.connect()
return cont
}

def REST_URL="https://url-to-my-merge-check-web-service/merge/check/10418";

def response = new JsonSlurper().parseText(get(REST_URL));
def ret = (response.status == 'accept') ? true : false;
return ret

maybe I have misunderstood how this feature work.

The web-service will take the PR id as argument and then do lots of checks and then return accept or block in the returned JSON.

I get this to work in the Script Console but when I paste it into a conditional merge check I get errors like:

<pre>org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: Script45.groovy: 20: [Static type checking] - You tried to call a method which is not allowed: Script45#get(java.lang.String) @ line 20, column 17. def json_resp = get(REST_URL); ^ Script45.groovy: 21: [Static type checking] - You tried to call a method which is not allowed: groovy.json.JsonSlurper#<init>() @ line 21, column 19. def jsonSlurper = new JsonSlurper(); ^ Script45.groovy: 22: [Static type checking] - Cannot find matching method groovy.json.JsonSlurper#parseText(java.lang.Object). Please check if the declared type is right and if the method exists

Any ideas why this is not working in the conditional merge check?

Thnx in advance!

Cheers,

// Svante

0 answers

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events