Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

You’re back onlineWe've lost our connection to you. Your changes will be saved when we reconnect. Trying to reconnect

Normal text

  • P

Publish

Close

37

  1. Smart Checklist Dev

  2. Smart Checklist Knowledge Base DRAFT

  3. REST API 1.0 [+templates]

Welcome to the Smart Checklist for Jira Server/Data Center platform REST API reference. You can use this REST API to develop integrations between Smart Checklist, Jira, and other 3rd party applications. This page documents the REST resources available in Smart Checklist for the Jira Server/Data Center platform, along with expected HTTP response codes and sample requests.

Looking for simplier integration using Jira REST API and/or 3rd party add-ons? Follow the links below:

Expand
titleExpand table of contents

Table of Contents

Table of Contents

The results of this element aren’t visible when editing. Preview the page or publish it to see how it will look.

Table of Contents

Authentication

Use the same authentication that you use to authenticate to Jira applications on your instances.

...

Expand
titleExpand

Query parameters

  • issueKey: string (required)

Responses

  • Status
    colourGreen
    titleSTATUS status 200
    application/json Returns a list of all checklists associated with the provided issue key in JSON format
    Example

Code Block
language
json
{
    "checklists": [
        {
            "checklistId": 5,
            "issueId": 10115,
            "items": [
                {
                    "id": 50829,
                    "rank": 0,
                    "label": "Release instructions",
                    "type": "heading",
                    "level": 1,
                    "quotes": []
                },
                {
                    "id": 50830,
                    "rank": 1,
                    "label": "Preparation",
                    "type": "heading",
                    "level": 2,
                    "quotes": []
                },
                {
                    "id": 50831,
                    "rank": 2,
                    "label": "Add feature permissions",
                    "type": "item",
                    "status": {
                        "id": 4,
                        "rank": 2,
                        "name": "DONE",
                        "color": "GREEN",
                        "default": true,
                        "statusState": "CHECKED"
                    },
                    "quotes": []
                },
                {
                    "id": 50832,
                    "rank": 3,
                    "label": "Send `internal` announcement with presentation",
                    "type": "item",
                    "status": {
                        "id": 4,
                        "rank": 2,
                        "name": "DONE",
                        "color": "GREEN",
                        "default": true,
                        "statusState": "CHECKED"
                    },
                    "quotes": []
                },
                {
                    "id": 50833,
                    "rank": 4,
                    "label": "Prepare branch",
                    "type": "item",
                    "status": {
                        "id": 2,
                        "rank": 6,
                        "name": "IN PROGRESS",
                        "color": "BLUE",
                        "default": true,
                        "statusState": "UNCHECKED"
                    },
                    "quotes": [
                        {
                            "id": 1439,
                            "rank": 0,
                            "text": "* merge feature to master",
                            "label": "* merge feature to master"
                        },
                        {
                            "id": 1440,
                            "rank": 1,
                            "text": "* set tag",
                            "label": "* set tag"
                        },
                        {
                            "id": 1441,
                            "rank": 2,
                            "text": "* update changelog.com",
                            "label": "* update changelog.com"
                        }
                    ]
                }
            ],
            "mentionedUsers": {}
        }
    ]
}

  • Status
    colourRed
    titleSTATUS status 400
    Returned if the issue key is not provided

  • Status
    colourRed
    titleSTATUS status 404
    Returned if the requested issue is not found

...

Expand
titleExpand

Path parameters

  • checklistId: number (required)

Body parameters (application/json) - list of JSON objects:

  • id: number

  • rank: number

  • label: string

  • status: object

    • id: number (required) - new status id

Example

Changes the item 50859 position and changes label + status of item 50860:

Code Block
language
json
[
    {
        "id": 50859,
        "rank": 3
    },
    {
        "id": 50860,
        "label": "Add feature permissions",
        "status": {
            "id": 2
        }
    }
]

Responses

  • Status
    colourGreen
    titleSTATUS 200
    Returns a list of all checklists associated with the same issue in JSON format

  • Status
    colourRed
    titleSTATUS status 400
    Returned if the request body is invalid

  • Status
    colourRed
    titleSTATUS status 404
    Returned if the requested checklist is not found

...

Deletes all checklist items for the given checklist

Expand
titleExpand

Path parameters

  • checklistId: number (required)

Responses

  • Status
    colourGreen
    titleSTATUS 200

...

  • application/json returns empty checklist in JSON format

  • Status
    colourRed
    title

...

  • status 404

...

  • Returned if the requested checklist is not found

Create/Update checklist from string PUT /rest/railsware/1.0/checklist/{checklistId}/item

...

Expand
titleExpand

Path parameters

  • checklistId: number (required)

Body parameters (application/json)

  • stringValue: string (required)

  • isReplace: boolean - replaces all checklist items by the provided string value if true, appends items to the end of the list otherwise

Example

Code Block
languagejson

{
    "isReplace": true,
    "stringValue": "# Release instructions2\n## Preparation\n+ Add feature permissions\n+ Send `internal` announcement with presentation\n~ Prepare branch\n> * merge feature to master\n> * set tag\n> * update changelog.com"
}

Responses

  • Status
    colourGreen
    titleSTATUS 200
    Returns a list of all checklists associated with the same issue in JSON format

...

Returns a paginated list of templates available in Jira

Expand
titleExpand

Query parameters

  • page: number (default 1)

  • reversed: boolean - specifies ASC or DESC order of templates

  • query: string - specifies the filter by template name

  • orderBy: string - specifies the order column of templates. Valid values are name, enabled, issueTypes and projects

Responses

  • Status
    colourGreen
    titleSTATUS 200

...

  • application/json returns a list of templates in JSON format

    Example:

Code Block
languagejson

...

{
   "totalPages": 1,
   "templates": [
       {
           "id": 2,
           "name": "For manual",
           "value": "- uno\n- duo\n- tres\n",
           "enabled": true,
           "defaultContext": {
               "type": 0,
               "values": []
           },
           "scope": {
               "type": 1,
               "values": [
                   {
                       "value": "10000",
                       "label": "Test 1",
                       "iconUrl": "http://localhost:2990/jira/secure/projectavatar?size=xsmall&avatarId=10324",
                       "link": ""
                   },
                   {
                       "value": "10001",
                       "label": "Second Project",
                       "iconUrl": "http://localhost:2990/jira/secure/projectavatar?size=xsmall&avatarId=10324",
                       "link": ""
                   }
               ]
           },
           "conditions": [],
           "trigger": {
               "type": 3,
               "preventDuplicates": false
           },
           "usageCount": 0,
           "modificationType": "APPEND"
       },
       {
           "id": 3,
           "name": "Release",
           "value": "# Release instuctions\n## Preparation\n+ Add feature permissions\n+ Send `internal` announcement\n~ Prepare branch\n> * merge feature to master\n> * set tag\n> * update changlog.com\n## Deploy\n- Deploy master to prod\nx Deploy new login page\n- Test and confirm successful deployment\n- Send `external` announcement to customers\n",
           "enabled": true,
           "defaultContext": {
               "type": 2,
               "values": [
                   {
                       "value": "10000",
                       "label": "Task",
                       "iconUrl": "http://localhost:2990/jira/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype"
                   }
               ]
           },
           "scope": {
               "type": 0,
               "values": []
           },
           "conditions": [
               {
                   "field": {
                       "id": "issuetype",
                       "type": "MULTI_SELECT",
                       "suggestionFieldId": "issuetype"
                   },
                   "option": "IS_ONE_OF",
                   "values": [
                       "10000"
                   ]
               },
               {
                   "field": {
                       "id": "priority",
                       "type": "PRIORITY",
                       "suggestionFieldId": "priority"
                   },
                   "option": "GREATER_THAN",
                   "values": [
                       "2"
                   ]
               }
           ],
           "trigger": {
               "type": 2,
               "to": [
                   "6",
                   "10001",
                   "5"
               ],
               "preventDuplicates": false
           },
           "usageCount": 0,
           "modificationType": "APPEND"
       },
       {
           "id": 1,
           "name": "Test",
           "value": "- item 1\n- item 2\n- item 3\n",
           "enabled": false,
           "defaultContext": {
               "type": 1,
               "values": []
           },
           "scope": {
               "type": 2,
               "values": [
                   {
                       "value": "10000",
                       "label": "Test 1",
                       "iconUrl": "http://localhost:2990/jira/secure/projectavatar?size=xsmall&avatarId=10324",
                       "link": ""
                   }
               ]
           },
           "conditions": [
               {
                   "field": {
                       "id": "summary",
                       "type": "SINGLE_LINE_TEXT",
                       "suggestionFieldId": "summary"
                   },
                   "option": "CONTAINS",
                   "values": [
                       "urgent"
                   ]
               },
               {
                   "field": {
                       "id": "issuetype",
                       "type": "MULTI_SELECT",
                       "suggestionFieldId": "issuetype"
                   },
                   "option": "ALL",
                   "values": []
               }
           ],
           "trigger": {
               "type": 0,
               "preventDuplicates": false
           },
           "usageCount": 0,
           "modificationType": "APPEND"
       }
   ]
}
  • Status
    colourRed
    title

...

  • status 400

...

  • Returned if the request parameters are invalid

Get project templates GET /rest/railsware/1.0/template/project/{projectId}

...

Expand
titleExpand

Path parameters

  • projectId: number

Query parameters

  • page: number (default 1)

  • global: boolean - if true returns templates for ALL projects scope and Multiple project scope that contains selected project

  • reversed: boolean - specify ASC or DESC order of templates by name

Responses

  • Status
    colourGreen
    titleSTATUS status 200
    application/json returns a list of project templates in JSON format
    Example:

Code Block

{
   "totalPages": 1,
   "templates": [
       {
           "id": 2,
           "name": "For manual",
           "value": "- uno\n- duo\n- tres\n",
           "enabled": true,
           "defaultContext": {
               "type": 0,
               "values": []
           },
           "scope": {
               "type": 1,
               "values": [
                   {
                       "value": "10000",
                       "label": "Test 1",
                       "iconUrl": "http://localhost:2990/jira/secure/projectavatar?size=xsmall&avatarId=10324",
                       "link": ""
                   },
                   {
                       "value": "10001",
                       "label": "Second Project",
                       "iconUrl": "http://localhost:2990/jira/secure/projectavatar?size=xsmall&avatarId=10324",
                       "link": ""
                   }
               ]
           },
           "conditions": [],
           "trigger": {
               "type": 3,
               "preventDuplicates": false
           },
           "usageCount": 0,
           "modificationType": "APPEND"
       },
       {
           "id": 3,
           "name": "Release",
           "value": "# Release instuctions\n## Preparation\n+ Add feature permissions\n+ Send `internal` announcement\n~ Prepare branch\n> * merge feature to master\n> * set tag\n> * update changlog.com\n## Deploy\n- Deploy master to prod\nx Deploy new login page\n- Test and confirm successful deployment\n- Send `external` announcement to customers\n",
           "enabled": true,
           "defaultContext": {
               "type": 2,
               "values": [
                   {
                       "value": "10000",
                       "label": "Task",
                       "iconUrl": "http://localhost:2990/jira/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype"
                   }
               ]
           },
           "scope": {
               "type": 0,
               "values": []
           },
           "conditions": [
               {
                   "field": {
                       "id": "issuetype",
                       "type": "MULTI_SELECT",
                       "suggestionFieldId": "issuetype"
                   },
                   "option": "IS_ONE_OF",
                   "values": [
                       "10000"
                   ]
               },
               {
                   "field": {
                       "id": "priority",
                       "type": "PRIORITY",
                       "suggestionFieldId": "priority"
                   },
                   "option": "GREATER_THAN",
                   "values": [
                       "2"
                   ]
               }
           ],
           "trigger": {
               "type": 2,
               "to": [
                   "6",
                   "10001",
                   "5"
               ],
               "preventDuplicates": false
           },
           "usageCount": 0,
           "modificationType": "APPEND"
       }
   ]
}
  • Status
    colourRed
    titleSTATUS status 404
    returned if the requested project is not found

  • Status
    colourRed
    titleSTATUS status 400
    returned if the request parameters are invalid

...

Expand
titleExpand

Path parameters

  • templateId: number

Reponses

  • Status
    colourGreen
    titleSTATUS status 200
    application/json returns a single template in JSON format
    Example:

    Code Block
    
    {
       "id": 3,
       "name": "Release",
       "value": "# Release instuctions\n## Preparation\n+ Add feature permissions\n+ Send `internal` announcement\n~ Prepare branch\n> * merge feature to master\n> * set tag\n> * update changlog.com\n## Deploy\n- Deploy master to prod\nx Deploy new login page\n- Test and confirm successful deployment\n- Send `external` announcement to customers\n",
       "enabled": true,
       "defaultContext": {
           "type": 2,
           "values": [
               {
                   "value": "10000",
                   "label": "Task",
                   "iconUrl": "http://localhost:2990/jira/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype"
               }
           ]
       },
       "scope": {
           "type": 0,
           "values": []
       },
       "conditions": [
           {
               "field": {
                   "id": "issuetype",
                   "type": "MULTI_SELECT",
                   "suggestionFieldId": "issuetype"
               },
               "option": "IS_ONE_OF",
               "values": [
                   "10000"
               ]
           },
           {
               "field": {
                   "id": "priority",
                   "type": "PRIORITY",
                   "suggestionFieldId": "priority"
               },
               "option": "GREATER_THAN",
               "values": [
                   "2"
               ]
           }
       ],
       "trigger": {
           "type": 2,
           "to": [
               "6",
               "10001",
               "5"
           ],
           "preventDuplicates": false
       },
       "usageCount": 0,
       "modificationType": "APPEND"
    }
  • Status
    colourRed
    titleSTATUS status 404
    returned if the requested template is not found

...

Returns a supported list of fields with types for template condition section

Expand
titleExpand

Supported options per field types are:

  • MULTI_SELECT - EQUALS, DOES_NOT_EQUAL, IS_ONE_OF, IS_NOT_ONE_OF

  • SINGLE_SELECT - EQUALS, CONTAINS_ANY_OF, CONTAINS_ALL_OF, CONTAINS_NONE_OF

  • USER - EQUALS, DOES_NOT_EQUAL, IS_ONE_OF, IS_NOT_ONE_OF

  • SINGLE_LINE_TEXT - EQUALS, DOES_NOT_EQUAL, STARTS_WITH, ENDS_WITH, CONTAINS, DOES_NOT_CONTAIN

  • MULTI_LINE_TEXT - EQUALS, DOES_NOT_EQUAL, STARTS_WITH, ENDS_WITH, CONTAINS, DOES_NOT_CONTAIN

  • NUMBER - EQUALS, DOES_NOT_EQUAL, GREATER_THAN, GREATER_THAN_OR_EQUAL_TO, LESS_THAN, LESS_THAN_OR_EQUAL_TO

  • PRIORITY - EQUALS, DOES_NOT_EQUAL, GREATER_THAN, GREATER_THAN_OR_EQUAL_TO, LESS_THAN, LESS_THAN_OR_EQUAL_TO, IS_ONE_OF, IS_NOT_ONE_OF

  • RESOLUTION - EQUALS, DOES_NOT_EQUAL, IS_ONE_OF, IS_NOT_ONE_OF, IS_RESOLVED, IS_UNRESOLVED

  • REQUEST_TYPE - EQUALS, DOES_NOT_EQUAL, IS_ONE_OF, IS_NOT_ONE_OF

Also, if field has property “canBeEmpty” equal to ‘true’, a list of options will extend with two additional values - IS_EMPTY and IS_NOT_EMPTY

Responses

  • Status
    colourGreen
    titleSTATUS status 200
    application/json returns a list of fields in JSON format
    Example:

    Code Block
    
    [
       {
           "id": "summary",
           "type": "SINGLE_LINE_TEXT",
           "name": "Summary",
           "canBeEmpty": true,
           "suggestionFieldId": "summary"
       },
       {
           "id": "issuetype",
           "type": "MULTI_SELECT",
           "name": "Issue Type",
           "canBeEmpty": false,
           "suggestionFieldId": "issuetype"
       },
       {
           "id": "status",
           "type": "MULTI_SELECT",
           "name": "Status",
           "canBeEmpty": false,
           "suggestionFieldId": "status"
       },
       {
           "id": "priority",
           "type": "PRIORITY",
           "name": "Priority",
           "canBeEmpty": false,
           "suggestionFieldId": "priority"
       },
       {
           "id": "resolution",
           "type": "RESOLUTION",
           "name": "Resolution",
           "canBeEmpty": false,
           "suggestionFieldId": "resolution"
       },
       {
           "id": "assignee",
           "type": "USER",
           "name": "Assignee",
           "canBeEmpty": true,
           "suggestionFieldId": "assignee"
       },
       {
           "id": "reporter",
           "type": "USER",
           "name": "Reporter",
           "canBeEmpty": true,
           "suggestionFieldId": "reporter"
       },
       {
           "id": "creator",
           "type": "USER",
           "name": "Creator",
           "canBeEmpty": true,
           "suggestionFieldId": "creator"
       },
       {
           "id": "affectedVersion",
           "type": "MULTI_SELECT",
           "name": "Affects Version/s",
           "canBeEmpty": true,
           "suggestionFieldId": "affectedVersion"
       },
       {
           "id": "fixVersion",
           "type": "MULTI_SELECT",
           "name": "Fix Version/s",
           "canBeEmpty": true,
           "suggestionFieldId": "fixVersion"
       },
       {
           "id": "component",
           "type": "MULTI_SELECT",
           "name": "Component/s",
           "canBeEmpty": true,
           "suggestionFieldId": "component"
       },
       {
           "id": "environment",
           "type": "MULTI_LINE_TEXT",
           "name": "Environment",
           "canBeEmpty": true,
           "suggestionFieldId": "environment"
       },
       {
           "id": "description",
           "type": "MULTI_LINE_TEXT",
           "name": "Description",
           "canBeEmpty": true,
           "suggestionFieldId": "description"
       },
       {
           "id": "labels",
           "type": "MULTI_SELECT",
           "name": "Labels",
           "canBeEmpty": true,
           "suggestionFieldId": "labels"
       },
       {
           "id": "customfield_10001",
           "type": "MULTI_LINE_TEXT",
           "name": "Checklists",
           "canBeEmpty": true,
           "suggestionFieldId": "cf[10001]"
       },
       {
           "id": "customfield_10002",
           "type": "SINGLE_LINE_TEXT",
           "name": "Smart Checklist Progress",
           "canBeEmpty": true,
           "suggestionFieldId": "cf[10002]"
       }
    ]

Create template POST /rest/railsware/1.0/template

Creates a new template


Expand
titleExpand

Body parameters (application/json)

  • name: string (required) - specifies template name

  • value: string - specifies checklist value in string format

  • enabled: boolean (true by default)

  • scope: object (required) - specifies a scope of projects to be displayed on
    type: number - (0 - All projects, 1 - Multiple projects, 2 - Single project)
    values: array of project ids

  • trigger: object - specifies a trigger for automatically template applying
    type: number - (0 - Issue created, 1 - Issue updated, 2 - Issue transitioned, 3 - none)
    from: array of status ids - available only for Issue transitioned trigger type
    to: array of status ids - available only for Issue transitioned trigger type
    preventDuplicates: boolean

  • conditions: array of objects - specifies a list of conditions that have to be checked before applying a template
    field: object
    type: string (required)
    id: string (required)
    option: string
    values: array of strings

Request body example:

Code Block

...

{
   "name": "Template name",
   "value": "- item 1\n",
   "enabled": true,
   "scope": {
       "type": 0,
       "values": []
   },
   "conditions": [
       {
           "field": {
               "id": "resolution",
               "type": "RESOLUTION"
           },
           "option": "IS_UNRESOLVED",
           "values": []
       },
       {
           "field": {
               "id": "issuetype",
               "type": "MULTI_SELECT"
           },
           "option": "IS_ONE_OF",
           "values": [
               "10000",
               "10001"
           ]
       },
       {
           "field": {
               "id": "priority",
               "type": "PRIORITY"
           },
           "option": "GREATER_THAN",
           "values": [
               "2"
           ]
       }
   ],
   "trigger": {
       "type": 2,
       "from": ["4"],
       "to": [
           "6",
           "10001",
           "5"
       ],
       "preventDuplicates": false
   }
}

Responses

  • Status
    colourGreen
    title

...

  • status 200

...

  • application/json returns the created template in JSON format

  • Status
    colourRed
    title

...

  • status 400

...

  • returned if the request parameters are invalid

Update template PUT /rest/railsware/1.0/template/{id}

...

Expand
titleExpand


Path parameters

  • id: number (required)

Body parameters (application/json)

  • name: string (required) - specifies template name

  • value: string - specifies checklist value in string format

  • enabled: boolean (true by default)

  • scope: object (required) - specifies a scope of projects to be displayed on
    type: number - (0 - All projects, 1 - Multiple projects, 2 - Single project)
    values: array of project ids

  • trigger: object - specifies a trigger for automatically template applying
    type: number - (0 - Issue created, 1 - Issue updated, 2 - Issue transitioned, 3 - none)
    from: array of status ids - available only for Issue transitioned trigger type
    to: array of status ids - available only for Issue transitioned trigger type
    preventDuplicates: boolean

  • conditions: array of objects - specifies a list of conditions that have to be checked before applying a template
    field: object
    type: string (required)
    id: string (required)
    option: string
    values: array of strings

Responses

  • Status
    colourGreen
    titleSTATUS status 200
    application/json returns the created template in JSON format

  • Status
    colourRed
    titleSTATUS status 400
    returned if the request parameters are invalid

...

Expand
titleExpand

Path parameters

  • id: number (required)

Query parameters:

  • page: number

Responses

  • Status
    colourGreen
    titleSTATUS status 200
    application/json Returns list of existing templates in JSON format

  • Status
    colourRed
    titleSTATUS status 404
    status 404 - returned if the requested template is not found

...