Here is the code that I am attempting to use:
global class SalesforceJiraUpdate {
public string endpoint='https://xxx.atlassian.net/rest/api/2/issue/'; //JIRA URL
public String username = 'xxx'; // JIRA username
public String password = 'xxx'; // JIRA password
@future(callout=true)
public static void updateIssue(string key,string summary,string description,string Jiraid){
key = Jiraid;
new SalesforceJiraUpdate(key,summary,description,Jiraid);
}
public String authHeader(){
Blob headerValue = Blob.valueOf(username+':'+password);
return 'Basic ' + EncodingUtil.base64Encode(headerValue);
}
public SalesforceJiraUpdate(string key,string summary,string description,string Jiraid){
HttpRequest req = new HttpRequest();
Http http = new Http();
req.setMethod('PUT');
//Set HTTPRequest header properties
endpoint+=+key;
req.setHeader('Accept', 'application/json');
req.setHeader('Content-Type','application/json');
Blob headerValue = Blob.valueOf(username+':'+password);
req.setHeader('Authorization','Basic '+ EncodingUtil.base64Encode(headerValue));
req.setEndpoint(endpoint);
system.debug('the endpoint is :'+endpoint);
String UpdateIssueJson= '{"update": {"summary":[{"set":"'+summary+'"}],"description":[{"set":"'+description+'"}], "issuetype":[{"set" :{"name": "Bug"}}]}}';
String JSONData = JSON.serializePretty(UpdateIssueJson);
req.setBody(UpdateIssueJson);
system.debug('after response....'+UpdateIssueJson);
try{
//Execute web service call here
HTTPResponse res = http.send(req);
String ResponseJsonString = res.getBody();
System.debug('ResponseJsonString '+res);
}
catch(System.CalloutException e){
System.debug('Callout error: '+ e);
}
}
}