I have in-house system which needed to be updated according to JIRA issue transit through workflows.
I've tried below codes with scriptrunner post-function but having no luck. (getting stackoverflow error)
If I cannot call the external REST services from JIRA, another way is to poll regularly from our in-house system.
(or JIRA creates JSON file then process it via batch process?)
Any help will be appreciated.
import groovy.json.JsonSlurper;
import groovy.json.StreamingJsonBuilder;
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.IssueManager;
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.Issue;
import org.apache.commons.codec.binary.Base64;
CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager();
def issue = issue as Issue
def issueStatus = issue.status;
// find custom fields
def cf2 = customFieldManager.getCustomFieldObjects(issue).find {it.name == 'Original Call Log ID'};
def issueCalllog = issue.getCustomFieldValue(cf2);
def body_req = [
"record.char_20": issueStatus,
"record.char_21": issueCalllog
]
def baseURL = "http://rd0013:daniel12@192.168.170.179/IBSDevREST/rest/resources/MAIN/GE/LOG/record/17020013";
URL url;
url = new URL(baseURL);
URLConnection connection = url.openConnection();
/*connection.requestMethod = "POST" */
connection.doOutput = true
connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8")
connection.outputStream.withWriter("UTF-8") { new StreamingJsonBuilder(it, body_req) }
connection.connect();