PHP ActiveX Jira - Issues: Create Issue

Back to Index

Creates an issue or a sub-task from a JSON representation.

Documentation: https://developers.atlassian.com/cloud/jira/platform/rest/#api-api-2-issue-post

CURL Command

curl -X POST --user jira@example.com:JIRA_API_TOKEN \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '
    {
      "fields": {
        "project": {
          "id": "10000"
        },
        "summary": "something is wrong",
        "issuetype": {
          "id": "10000"
        },
        "assignee": {
          "name": "matt"
        },
        "priority": {
          "id": "3"
        },
        "labels": [
          "bugfix",
          "blitz_test"
        ],
        "description": "description",
        "fixVersions": [
          {
            "id": "10001"
          }
        ],
        "customfield_10005": "blah blah"
      }
    }' \
  --url 'https://your-domain.atlassian.net/rest/api/2/issue'

PHP ActiveX Example

<?php

$rest = new COM("Chilkat_9_5_0.Rest");

//  URL: https://your-domain.atlassian.net/rest/api/2/issue
$bTls = 1;
$port = 443;
$bAutoReconnect = 1;
$success = $rest->Connect('your-domain.atlassian.net',$port,$bTls,$bAutoReconnect);
if ($success != 1) {
    print 'ConnectFailReason: ' . $rest->ConnectFailReason . "\n";
    print $rest->LastErrorText . "\n";
    exit;
}

$rest->SetAuthBasic('jira@example.com','JIRA_API_TOKEN');

$json = new COM("Chilkat_9_5_0.JsonObject");
$json->UpdateString('fields.project.id','10000');
$json->UpdateString('fields.summary','something is wrong');
$json->UpdateString('fields.issuetype.id','10000');
$json->UpdateString('fields.assignee.name','matt');
$json->UpdateString('fields.priority.id','3');
$json->UpdateString('fields.labels[0]','bugfix');
$json->UpdateString('fields.labels[1]','blitz_test');
$json->UpdateString('fields.description','description');
$json->UpdateString('fields.fixVersions[0].id','10001');
$json->UpdateString('fields.customfield_10005','blah blah');

$rest->AddHeader('Content-Type','application/json');
$rest->AddHeader('Accept','application/json');

$sbRequestBody = new COM("Chilkat_9_5_0.StringBuilder");
$json->EmitSb($sbRequestBody);
$sbResponseBody = new COM("Chilkat_9_5_0.StringBuilder");
$success = $rest->FullRequestSb('POST','/rest/api/2/issue',$sbRequestBody,$sbResponseBody);
if ($success != 1) {
    print $rest->LastErrorText . "\n";
    exit;
}

$respStatusCode = $rest->ResponseStatusCode;
if ($respStatusCode >= 400) {
    print 'Response Status Code = ' . $respStatusCode . "\n";
    print 'Response Header:' . "\n";
    print $rest->ResponseHeader . "\n";
    print 'Response Body:' . "\n";
    print $sbResponseBody->getAsString() . "\n";
    exit;
}

$jsonResponse = new COM("Chilkat_9_5_0.JsonObject");
$jsonResponse->LoadSb($sbResponseBody);

$id = $jsonResponse->stringOf('id');
$key = $jsonResponse->stringOf('key');
$self = $jsonResponse->stringOf('self');

?>

Sample JSON Response Body

{
  "id": "10023",
  "key": "SCRUM-24",
  "self": "https://chilkat.atlassian.net/rest/api/2/issue/10023"
}