InsightConnect Marketplace

Jira

Back to Marketplace

Jira

v6.0.3

Automate the creation, search and management of issues, users, and alerting for Jira Software, Jira Server, and Jira ServiceDesk

Tags: ticket, Jira

Triggers
  • New Issue

Actions
  • Assign Issue
  • Add Attachment to Issue
  • Comment Issue
  • Create Issue
  • Create User
  • Delete User
  • Edit Issue
  • Find Issues
  • Find Users
  • Get Comments
  • Get Issue
  • Label Issue
  • Transition Issue

Description

Jira is an issue tracking product developed by Atlassian that allows teams to plan, track, and release great software. This plugin uses the Jira REST API to programmatically manage and create issues and users. The Jira plugin supports cloud and on-premise versions of Jira Software, Jira Server, and Jira ServiceDesk products from Atlassian.

Key Features

  • Create, find, edit, comment, and generally manage your Jira tickets through the Jira REST API to expedite operations
  • (Re-)Assign issues to users to orchestrate operations
  • Find and create new users in your Jira instance to automate account provisioning

Requirements

  • URL for Jira Software, Jira Server, or Jira ServiceDesk
  • Administrative credentials

Documentation

Setup

The connection configuration accepts the following parameters:

Name Type Default Required Description Enum Example
api_key credential_secret_key None True Jira API key (Jira password is not supported) None 9de5069c5afe602b2ea0a04b66beb2c0
url string https://example.atlassian.net False Jira URL None https://example.atlassian.net
user string None True Jira user email None user@example.com

Example input:

{
  "api_key": "9de5069c5afe602b2ea0a04b66beb2c0",
  "url": "https://example.atlassian.net",
  "user": "user@example.com"
}

Technical Details

Actions

Find Issues

This action is used to search for issues.

Input
Name Type Default Required Description Enum Example
get_attachments boolean False False Get attachments from issue None True
jql string None True JQL search string to use None project = "TEST"
max integer 10 True Max results to return None 10

Example input:

{
  "get_attachments": true,
  "jql": "project = \"TEST\"",
  "max": 10
}
Output
Name Type Required Description
issues []issue False The list of found issues

Example output:

{
  "issues": [{
      "id": "10001",
      "key": "PT-2",
      "url": "https://example.atlassian.net/browse/PT-2",
      "summary": "Test ticket for the plugin-test project",
      "description": "A test ticket",
      "status": "To Do",
      "reporter": "User1",
      "created_at": "2018-10-29T12:58:11.222-0500",
      "updated_at": "2018-10-29T13:06:31.250-0500",
      "labels": ["Needs_test"],
      "fields": {}
  }]
}

Add Attachment to Issue

This action is used to add an attachment to an issue in Jira.

Input
Name Type Default Required Description Enum Example
attachment_bytes bytes None True Attachment bytes None TVqQAAMAAAAEAAAA//8AALgAAAAAAA...
attachment_filename string None True Attachment filename. Must end with a filetype extension if possible None document.pdf
id string None True Issue ID None 10001

Example input:

{
  "attachment_bytes": "TVqQAAMAAAAEAAAA//8AALgAAAAAAA...",
  "attachment_filename": "document.pdf",
  "id": 10001
}
Output
Name Type Required Description
id string False ID of attachment

Example output:

{
  "id": "10001"
}

Transition Issue

This action is used to transition an issue. For fields examples, see https://developer.atlassian.com/server/jira/platform/jira-rest-api-examples/.

Input
Name Type Default Required Description Enum Example
comment string None False Comment to add None Transition executed by InsightConnect
fields object None False Custom fields to assign. Fields used must be present on the screen used for project, issue, and transition type e.g: { "field1": { "attribute1": "value1" }, "field2": { "attribute2": "value2" }} None { "fields": { "project": { "key": "TEST" }, "summary": "Test Ticket", "description": "Test ticket created from InsightConnect", "issuetype": { "name": "Story" } } }
id string None True Issue ID None 10001
transition string None True ID or name of transition to perform, e.g. In Progress None 31

Example input:

{
  "comment": "Transition executed by InsightConnect",
  "fields": "{ \"fields\": { \"project\": { \"key\": \"TEST\" }, \"summary\": \"Test Ticket\", \"description\": \"Test ticket created from InsightConnect\", \"issuetype\": { \"name\": \"Story\" } } }",
  "id": 10001,
  "transition": 31
}

Example fields input:

{
  "fields": {
    "project": {
      "key": "TEST"
    },
    "summary": "Test Ticket",
    "description": "Test ticket created from InsightConnect",
    "issuetype": {
      "name": "Story"
    }
  }
}
Output
Name Type Required Description
success boolean False True if successful

Example output:

{
  "success": true
}

Delete User

This action is used to delete a user account.

Input
Name Type Default Required Description Enum Example
account_id string None False Unique identifier for an Atlassian account None 5ec00968833be70b7e50df20
username string None False Username None user1

Example input:

{
  "account_id": "5ec00968833be70b7e50df20",
  "username": "user1"
}
Output
Name Type Required Description
success boolean False True if successful

Example output:

{
  "success": true
}

Assign Issue

This action is used to assign an issue to a user.

Input
Name Type Default Required Description Enum Example
assignee string None True Username of assignee None user1
id string None True Issue ID None 10001

Example input:

{
  "assignee": "user1",
  "id": 10001
}
Output
Name Type Required Description
success boolean False True if successful

Example output:

{
  "success": true
}

Create Issue

This action is used to create an issue in Jira. For fields examples, see https://developer.atlassian.com/server/jira/platform/jira-rest-api-examples/.

Input
Name Type Default Required Description Enum Example
attachment_bytes bytes None False Attachment bytes None TVqQAAMAAAAEAAAA//8AALgAAAAAAA...
attachment_filename string None False Attachment filename None document.pdf
description string False Issue description None Successfully connect Jira to InsightConnect to automate ticket management
fields object None False Custom fields to assign. Fields used must be present on the same screen as the Create screen in Jira None { "fields": { "project": { "key": "TEST" }, "summary": "Test Ticket", "description": "Test ticket created from InsightConnect", "issuetype": { "name": "Story" } } }
project string None True Project ID None TEST
summary string None False Issue summary None Connect Jira to InsightConnect
type string Task False Issue type. Typical issues type include Task, Story, Epic, Bug. You can also specify a custom issue type. This input is case-sensitive None Story

Example input:

{
  "attachment_bytes": "TVqQAAMAAAAEAAAA//8AALgAAAAAAA...",
  "attachment_filename": "document.pdf",
  "description": "Successfully connect Jira to InsightConnect to automate ticket management",
  "fields": "{ \"fields\": { \"project\": { \"key\": \"TEST\" }, \"summary\": \"Test Ticket\", \"description\": \"Test ticket created from InsightConnect\", \"issuetype\": { \"name\": \"Story\" } } }",
  "project": "TEST",
  "summary": "Connect Jira to InsightConnect",
  "type": "Story"
}

Example fields input:

{
  "fields": {
    "project": {
      "key": "TEST"
    },
    "summary": "Test Ticket",
    "description": "Test ticket created from InsightConnect",
    "issuetype": {
      "name": "Story"
    }
  }
}
Output
Name Type Required Description
issue issue False Created issue

Example output:

{
  "attachments": [],
  "id": "10001",
  "key": "TEST-2",
  "url": "https://morecode-test2.atlassian.net/browse/TEST-2",
  "summary": "Test issue",
  "description": "Test test",
  "status": "Backlog",
  "resolution": "",
  "reporter": "User2",
  "assignee": "",
  "created_at": "2020-04-09T23:08:00.782+0200",
  "updated_at": "2020-04-09T23:08:00.782+0200",
  "resolved_at": "",
  "labels": [],
  "fields": {}
}

Create User

This action is used to create a user account.

Input
Name Type Default Required Description Enum Example
email string None True Email None user1@example.com
notify boolean False True Notify if true [True, False] False
password string None False Password None mypassword
username string None False Username None user1

Example input:

{
  "email": "user1@example.com",
  "notify": false,
  "password": "mypassword",
  "username": "user1"
}
Output
Name Type Required Description
success boolean False True if successful

Example output:

{
  "success": true
}

Label Issue

This action is used to label an issue.

Input
Name Type Default Required Description Enum Example
id string None True Issue ID None 10001
label string None True Label to add. To add multiple labels, separate by commas None documentation

Example input:

{
  "id": 10001,
  "label": "documentation"
}
Output
Name Type Required Description
success boolean False True if successful

Example output:

{
  "success": true
}

Find Users

This action is used to find users.

Input
Name Type Default Required Description Enum Example
max integer 10 True Max results to return None 10
query string None True Query String, e.g. Joe None Joe

Example input:

{
  "max": 10,
  "query": "Joe"
}
Output
Name Type Required Description
users []user False The list of found users

Example output for on-premise server:

{
  "users": [{
      "name": "mrinehart",
      "email_address": "user1@example.com",
      "display_name": "User1",
      "active": true
  }]
}

Example output for cloud server:

{
  "users": [{
    "display_name": "user1",
    "active": true,
    "email_address": "user1@example.com",
    "account_id": "5ebaff48acdf9c0b917dac88"
  }]
}

Example output:

{
  "users": [
    {
      "account_id": "5ebaff48acdf9c0b917dac88",
      "active": true,
      "display_name": "user1",
      "email_address": "user1@example.com"
    }
  ]
}

Comment Issue

This action is used to comment on an issue.

Input
Name Type Default Required Description Enum Example
comment string None True Comment to add None This comment was added by InsightConnect
id string None True Issue ID None 10001

Example input:

{
  "comment": "This comment was added by InsightConnect",
  "id": 10001
}
Output
Name Type Required Description
comment_id string False Comment ID

Example output:

{
  "comment_id": "10001"
}

Get Issue

This action is used to retrieve an issue.

Input
Name Type Default Required Description Enum Example
get_attachments boolean False False Get attachments from issue None False
id string None True Issue ID None TEST-1

Example input:

{
  "get_attachments": false,
  "id": "TEST-1"
}
Output
Name Type Required Description
found boolean False True if found
issue issue False Found issue

Example output:

{
  "found": true,
  "issue": {
      "id": "10001",
      "key": "PT-2",
      "url": "https://example.atlassian.net/browse/PT-2",
      "summary": "Test ticket for the plugin-test project",
      "description": "A test ticket",
      "status": "To Do",
      "resolution": "",
      "reporter": "User1",
      "assignee": "",
      "created_at": "2018-10-29T12:58:11.222-0500",
      "updated_at": "2018-10-29T13:06:31.250-0500",
      "resolved_at": "",
      "labels": ["Needs_test"],
      "fields": {
          "issuetype": {
              "self": "https://example.atlassian.net/rest/api/2/issuetype/10002",
              "id": "10002",
              "description": "A task that needs to be done.",
              "iconUrl": "https://example.atlassian.net/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype",
              "name": "Task",
              "subtask": false,
              "avatarId": 10318
          },
          "timespent": null,
          "project": {
              "self": "https://example.atlassian.net/rest/api/2/project/10000",
              "id": "10000",
              "key": "PT",
              "name": "plugin-test",
              "projectTypeKey": "software",
              "avatarUrls": {
                  "48x48": "",
                  "24x24": "",
                  "16x16": "",
                  "32x32": ""
              }
          },
          "fixVersions": [],
          "aggregatetimespent": null,
          "resolution": null,
          "resolutiondate": null,
          "workratio": -1,
          "lastViewed": null,
          "watches": {
              "self": "https://example.atlassian.net/rest/api/2/issue/PT-2/watchers",
              "watchCount": 1,
              "isWatching": true
          },
          "created": "2018-10-29T12:58:11.222-0500",
          "customfield_10020": [],
          "customfield_10021": "0|i00007:",
          "customfield_10022": [],
          "priority": {
              "self": "https://example.atlassian.net/rest/api/2/priority/3",
              "iconUrl": "https://example.atlassian.net/images/icons/priorities/medium.svg",
              "name": "Medium",
              "id": "3"
          },
          "labels": ["Needs_test"],
          "customfield_10016": null,
          "customfield_10017": {
              "hasEpicLinkFieldDependency": false,
              "showField": false,
              "nonEditableReason": {
                  "reason": "PLUGIN_LICENSE_ERROR",
                  "message": "Portfolio for Jira must be licensed for the Parent Link to be available."
              }
          },
          "customfield_10018": null,
          "customfield_10019": null,
          "aggregatetimeoriginalestimate": null,
          "timeestimate": null,
          "versions": [],
          "issuelinks": [],
          "assignee": null,
          "updated": "2018-10-29T13:06:31.250-0500",
          "status": {
              "self": "https://example.atlassian.net/rest/api/2/status/10001",
              "description": "",
              "iconUrl": "https://example.atlassian.net/",
              "name": "To Do",
              "id": "10001",
              "statusCategory": {
                  "self": "https://example.atlassian.net/rest/api/2/statuscategory/2",
                  "id": 2,
                  "key": "new",
                  "colorName": "blue-gray",
                  "name": "To Do"
              }
          },
          "components": [],
          "timeoriginalestimate": null,
          "description": "A test ticket",
          "customfield_10010": null,
          "customfield_10014": null,
          "timetracking": {},
          "customfield_10015": null,
          "customfield_10005": null,
          "customfield_10006": null,
          "security": null,
          "customfield_10007": null,
          "customfield_10008": null,
          "customfield_10009": null,
          "attachment": [],
          "aggregatetimeestimate": null,
          "summary": "Test ticket for the plugin-test project",
          "creator": {
              "self": "https://example.atlassian.net/rest/api/2/user?username=admin",
              "name": "admin",
              "key": "admin",
              "accountId": "4ac123f3f8412345a10cbaa0",
              "emailAddress": "user1@example.com",
              "avatarUrls": {
                  "48x48": "",
                  "24x24": "",
                  "16x16": "",
                  "32x32": ""
              },
              "displayName": "User1",
              "active": true,
              "timeZone": "America/Chicago"
          },
          "subtasks": [],
          "reporter": {
              "self": "https://example.atlassian.net/rest/api/2/user?username=admin",
              "name": "admin",
              "key": "admin",
              "accountId": "4ac123f3f8412345a10cbaa0",
              "emailAddress": "user1@example.com",
              "avatarUrls": {
                  "48x48": "",
                  "24x24": "",
                  "16x16": "",
                  "32x32": ""
              },
              "displayName": "User1",
              "active": true,
              "timeZone": "America/Chicago"
          },
          "aggregateprogress": {
              "progress": 0,
              "total": 0
          },
          "customfield_10000": "{}",
          "environment": null,
          "duedate": null,
          "progress": {
              "progress": 0,
              "total": 0
          },
          "votes": {
              "self": "https://example.atlassian.net/rest/api/2/issue/PT-2/votes",
              "votes": 0,
              "hasVoted": false
          },
          "comment": {
              "comments": [{
                  "self": "https://example.atlassian.net/rest/api/2/issue/10001/comment/10000",
                  "id": "10000",
                  "author": {
                      "self": "https://example.atlassian.net/rest/api/2/user?username=admin",
                      "name": "admin",
                      "key": "admin",
                      "accountId": "4ac123f3f8412345a10cbaa0",
                      "emailAddress": "user1@example.com",
                      "avatarUrls": {
                          "48x48": "",
                          "24x24": "",
                          "16x16": "",
                          "32x32": ""
                      },
                      "displayName": "User1",
                      "active": true,
                      "timeZone": "America/Chicago"
                  },
                  "body": "Needs additional testing",
                  "updateAuthor": {
                      "self": "https://example.atlassian.net/rest/api/2/user?username=admin",
                      "name": "admin",
                      "key": "admin",
                      "accountId": "4ac123f3f8412345a10cbaa0",
                      "emailAddress": "user1@example.com",
                      "avatarUrls": {
                          "48x48": "",
                          "24x24": "",
                          "16x16": "",
                          "32x32": ""
                      },
                      "displayName": "User1",
                      "active": true,
                      "timeZone": "America/Chicago"
                  },
                  "created": "2018-10-29T13:06:31.250-0500",
                  "updated": "2018-10-29T13:06:31.250-0500",
                  "jsdPublic": true
              }],
              "maxResults": 1,
              "total": 1,
              "startAt": 0
          },
          "worklog": {
              "startAt": 0,
              "maxResults": 20,
              "total": 0,
              "worklogs": []
          }
      }
  }
}

Get Comments

This action is used to retrieve all comments on an issue.

Input
Name Type Default Required Description Enum Example
id string None True Issue ID None TEST-1

Example input:

{
  "id": "TEST-1"
}
Output
Name Type Required Description
comments []comment False Comments list
count integer False Count of comments found

Example output:

{
  "count": 1,
  "comments": [{
      "self": "https://example.atlassian.net/rest/api/2/issue/10001/comment/10000",
      "id": "10000",
      "author": {
          "name": "admin",
          "email_address": "user1@example.com",
          "display_name": "User1",
          "active": true
      },
      "body": "Needs additional testing",
      "updateAuthor": {
          "self": "https://example.atlassian.net/rest/api/2/user?username=admin",
          "name": "admin",
          "key": "admin",
          "accountId": "4ac123f3f8412345a10cbaa0",
          "emailAddress": "user1@example.com",
          "avatarUrls": {
              "48x48": "",
              "24x24": "",
              "16x16": "",
              "32x32": ""
          },
          "displayName": "User1",
          "active": true,
          "timeZone": "America/Chicago"
      },
      "created": "2018-10-29T13:06:31.250-0500",
      "updated": "2018-10-29T13:06:31.250-0500",
      "jsdPublic": true
  }]
}

Edit Issue

This action is used to edit an issue within Jira. See https://developer.atlassian.com/server/jira/platform/updating-an-issue-via-the-jira-rest-apis-6848604/ for update examples. For fields examples, see https://developer.atlassian.com/server/jira/platform/jira-rest-api-examples/.

Input
Name Type Default Required Description Enum Example
description string None False Description field on the issue None Update ticket with additional Jira information for others teams wanting to leverage InsightConnect
fields object None False An object of fields and values to change None { "fields": { "project": { "key": "TEST" }, "summary": "Test Ticket", "description": "Test ticket created from InsightConnect", "issuetype": { "name": "Story" } } }
id string None True Issue ID None TEST-1
notify boolean True True Will send a notification email about the issue updated. Admin and project admins credentials need to be used to disable the notification None False
summary string None False Summary field on the issue None Connect Jira to InsightConnect for Multiple Teams
update object None False An object that contains update operations to apply, see examples at https://developer.atlassian.com/server/jira/platform/updating-an-issue-via-the-jira-rest-apis-6848604/|None|{ "update": { "labels": [ {"add": "newlabel"} ] } }

Example input:

Making an update to custom fields in the fields parameter:

{
  "customfield_10200" : {"value" : "Test 1"},
  "customfield_10201" :{"value" : "Value 1"}
}

Update the assignee in the field parameter

{
   "assignee":{"name":"harry"}
}

Using the update parameter

{
  "components" : [{"add" : {"name" : "Engine"}}]
}

Updating multiple fields with the update parameter

{
  "components" : [{"remove" : {"name" : "Trans/A"}}, {"add" : {"name" : "Trans/M"}}],
  "assignee" : [{"set" : {"name" : "harry"}}],
  "summary" : [{"set" : "Big block Chevy"}]
}

Additional information can be found here

Example input:

{
  "description": "Update ticket with additional Jira information for others teams wanting to leverage InsightConnect",
  "fields": "{ \"fields\": { \"project\": { \"key\": \"TEST\" }, \"summary\": \"Test Ticket\", \"description\": \"Test ticket created from InsightConnect\", \"issuetype\": { \"name\": \"Story\" } } }",
  "id": "TEST-1",
  "notify": false,
  "summary": "Connect Jira to InsightConnect for Multiple Teams",
  "update": "{ \"update\": { \"labels\": [ {\"add\": \"newlabel\"} ] } }"
}
Output
Name Type Required Description
success boolean False If changes were successful

Example output:

{
  "success": True
}

Triggers

New Issue

This trigger is used to trigger which indicates that a new issue has been created.

Input
Name Type Default Required Description Enum Example
get_attachments boolean False False Get attachments from issue None False
jql string None False JQL search string to use None project = "TEST"
poll_timeout integer 60 False Timeout between next poll, default 60 None 60
project string None True Project ID or name None TEST

Example input:

{
  "get_attachments": false,
  "jql": "project = \"TEST\"",
  "poll_timeout": 60,
  "project": "TEST"
}
Output
Name Type Required Description
issue issue False New issue

Example output:

{
  "found": true,
  "issue": {
      "id": "10001",
      "key": "PT-2",
      "url": "https://example.atlassian.net/browse/PT-2",
      "summary": "Test ticket for the plugin-test project",
      "description": "A test ticket",
      "status": "To Do",
      "resolution": "",
      "reporter": "User1",
      "assignee": "",
      "created_at": "2018-10-29T12:58:11.222-0500",
      "updated_at": "2018-10-29T13:06:31.250-0500",
      "resolved_at": "",
      "labels": ["Needs_test"],
      "fields": {
          "issuetype": {
              "self": "https://example.atlassian.net/rest/api/2/issuetype/10002",
              "id": "10002",
              "description": "A task that needs to be done.",
              "iconUrl": "https://example.atlassian.net/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype",
              "name": "Task",
              "subtask": false,
              "avatarId": 10318
          },
          "timespent": null,
          "project": {
              "self": "https://example.atlassian.net/rest/api/2/project/10000",
              "id": "10000",
              "key": "PT",
              "name": "plugin-test",
              "projectTypeKey": "software",
              "avatarUrls": {
                  "48x48": "",
                  "24x24": "",
                  "16x16": "",
                  "32x32": ""
              }
          },
          "fixVersions": [],
          "aggregatetimespent": null,
          "resolution": null,
          "resolutiondate": null,
          "workratio": -1,
          "lastViewed": null,
          "watches": {
              "self": "https://example.atlassian.net/rest/api/2/issue/PT-2/watchers",
              "watchCount": 1,
              "isWatching": true
          },
          "created": "2018-10-29T12:58:11.222-0500",
          "customfield_10020": [],
          "customfield_10021": "0|i00007:",
          "customfield_10022": [],
          "priority": {
              "self": "https://example.atlassian.net/rest/api/2/priority/3",
              "iconUrl": "https://example.atlassian.net/images/icons/priorities/medium.svg",
              "name": "Medium",
              "id": "3"
          },
          "labels": ["Needs_test"],
          "customfield_10016": null,
          "customfield_10017": {
              "hasEpicLinkFieldDependency": false,
              "showField": false,
              "nonEditableReason": {
                  "reason": "PLUGIN_LICENSE_ERROR",
                  "message": "Portfolio for Jira must be licensed for the Parent Link to be available."
              }
          },
          "customfield_10018": null,
          "customfield_10019": null,
          "aggregatetimeoriginalestimate": null,
          "timeestimate": null,
          "versions": [],
          "issuelinks": [],
          "assignee": null,
          "updated": "2018-10-29T13:06:31.250-0500",
          "status": {
              "self": "https://example.atlassian.net/rest/api/2/status/10001",
              "description": "",
              "iconUrl": "https://example.atlassian.net/",
              "name": "To Do",
              "id": "10001",
              "statusCategory": {
                  "self": "https://example.atlassian.net/rest/api/2/statuscategory/2",
                  "id": 2,
                  "key": "new",
                  "colorName": "blue-gray",
                  "name": "To Do"
              }
          },
          "components": [],
          "timeoriginalestimate": null,
          "description": "A test ticket",
          "customfield_10010": null,
          "customfield_10014": null,
          "timetracking": {},
          "customfield_10015": null,
          "customfield_10005": null,
          "customfield_10006": null,
          "security": null,
          "customfield_10007": null,
          "customfield_10008": null,
          "customfield_10009": null,
          "attachment": [],
          "aggregatetimeestimate": null,
          "summary": "Test ticket for the plugin-test project",
          "creator": {
              "self": "https://example.atlassian.net/rest/api/2/user?username=admin",
              "name": "admin",
              "key": "admin",
              "accountId": "4ac123f3f8412345a10cbaa0",
              "emailAddress": "user1@example.com",
              "avatarUrls": {
                  "48x48": "",
                  "24x24": "",
                  "16x16": "",
                  "32x32": ""
              },
              "displayName": "User1",
              "active": true,
              "timeZone": "America/Chicago"
          },
          "subtasks": [],
          "reporter": {
              "self": "https://example.atlassian.net/rest/api/2/user?username=admin",
              "name": "admin",
              "key": "admin",
              "accountId": "4ac123f3f8412345a10cbaa0",
              "emailAddress": "user1@example.com",
              "avatarUrls": {
                  "48x48": "",
                  "24x24": "",
                  "16x16": "",
                  "32x32": ""
              },
              "displayName": "User1",
              "active": true,
              "timeZone": "America/Chicago"
          },
          "aggregateprogress": {
              "progress": 0,
              "total": 0
          },
          "customfield_10000": "{}",
          "environment": null,
          "duedate": null,
          "progress": {
              "progress": 0,
              "total": 0
          },
          "votes": {
              "self": "https://example.atlassian.net/rest/api/2/issue/PT-2/votes",
              "votes": 0,
              "hasVoted": false
          },
          "comment": {
              "comments": [{
                  "self": "https://example.atlassian.net/rest/api/2/issue/10001/comment/10000",
                  "id": "10000",
                  "author": {
                      "self": "https://example.atlassian.net/rest/api/2/user?username=admin",
                      "name": "admin",
                      "key": "admin",
                      "accountId": "4ac123f3f8412345a10cbaa0",
                      "emailAddress": "user1@example.com",
                      "avatarUrls": {
                          "48x48": "",
                          "24x24": "",
                          "16x16": "",
                          "32x32": ""
                      },
                      "displayName": "User1",
                      "active": true,
                      "timeZone": "America/Chicago"
                  },
                  "body": "Needs additional testing",
                  "updateAuthor": {
                      "self": "https://example.atlassian.net/rest/api/2/user?username=admin",
                      "name": "admin",
                      "key": "admin",
                      "accountId": "4ac123f3f8412345a10cbaa0",
                      "emailAddress": "user1@example.com",
                      "avatarUrls": {
                          "48x48": "",
                          "24x24": "",
                          "16x16": "",
                          "32x32": ""
                      },
                      "displayName": "User1",
                      "active": true,
                      "timeZone": "America/Chicago"
                  },
                  "created": "2018-10-29T13:06:31.250-0500",
                  "updated": "2018-10-29T13:06:31.250-0500",
                  "jsdPublic": true
              }],
              "maxResults": 1,
              "total": 1,
              "startAt": 0
          },
          "worklog": {
              "startAt": 0,
              "maxResults": 20,
              "total": 0,
              "worklogs": []
          }
      }
  }
}

Custom Output Types

This plugin does not contain any custom output types.

Troubleshooting

This plugin does not contain any troubleshooting information.

Version History

  • 6.0.3 - Add docs_url to plugin spec with link to plugin setup guide
  • 6.0.2 - Fix in Comment Issue action where the Python module attributes were logged | Remove duplicate ConnectionTestException call from Connection Test
  • 6.0.1 - Update documentation to include supported Jira products
  • 6.0.0 - Update Create User, Delete User and Find Users to reflect Jira Cloud API privacy changes to support accountId | Fix issue in connection test where the error was logged but did not fail for users | Update connection schema to match the API key and username inputs
  • 5.0.0 - Fix user enumeration in Find Users | Add example input | Update titles of Attachment Filename input in Attach Issue action and Poll Timeout input in New Issue trigger to match style
  • 4.0.2 - Moved apk add in Dockerfile to use cache | Changed bare strings in params.get and output to static fields from schema | Remove duplicated code in actions | Changed Exception to PluginException
  • 3.2.1 - Update Get Issue, Find Issues and New Issue action to support a Get Attachments option
  • 3.2.0 - Update Transition Issue action to allow for assignment of fields during issue transition
  • 3.1.2 - Update Create Issue action to remove newlines from summaries
  • 3.1.1 - Update connection input labels to reflect Jira API changes
  • 3.1.0 - Added new Edit Issue action
  • 3.0.5 - Fix issue where description in Get Issue action would return None if description was left empty
  • 3.0.4 - Improve error handling by checking for known issue type before creating ticket in Create Issue action
  • 3.0.3 - Implement new connection test messaging
  • 3.0.2 - Update action and trigger descriptions
  • 3.0.1 - Fix issue where the New Issue trigger and Create Issue action may not output properly
  • 3.0.0 - Rename 'Attach Issue' action to 'Add Attachment to Issue' | Update 'Create Issue' action description to include note about case sensitivity | Update 'Create Issue' action and 'New Issue' trigger to use uniform 'Issue' output type | Fix issue where attachments were not being uploaded properly | Fix issue where trigger could fail with an empty ticket description
  • 2.0.1 - Fix issue where test method is missing in Create Issue action
  • 2.0.0 - Support web server mode
  • 1.0.4 - Update to v2 Python plugin architecture
  • 1.0.3 - Fix custom fields adding to Create Issue request
  • 1.0.2 - Fix custom fields input in Create Issue
  • 1.0.1 - SSL bug fix in SDK
  • 1.0.0 - Fix action: Create Issue
  • 0.2.2 - Fix action: Find Issue
  • 0.1.0 - Initial plugin

Links

References

plugin_spec_version: v2
extension: plugin
products: [insightconnect]
name: jira
title: Jira
vendor: rapid7
support: rapid7
status: []
description: Automate the creation, search and management of issues, users, and alerting for Jira Software, Jira Server, and Jira ServiceDesk
version: 6.0.3
resources:
  source_url: https://github.com/rapid7/insightconnect-plugins/tree/master/jira
  license_url: https://github.com/rapid7/insightconnect-plugins/blob/master/LICENSE
  vendor_url: https://www.atlassian.com
  docs_url: https://docs.rapid7.com/insightconnect/jira
tags:
  - ticket
  - Jira
hub_tags:
  use_cases: [remediation_management, threat_detection_and_response, reporting_and_analytics]
  keywords: [ticket, jira]
  features: []
types:
  user:
    accountId:
      type: string
      title: Account ID
      description: User account ID
      required: false
    name:
      type: string
      description: User name
      required: false
    email_address:
      type: string
      description: User's email address
      required: false
    display_name:
      type: string
      description: User's display name
      required: false
    active:
      type: boolean
      description: Whether the user is active
      required: false
  comment:
    id:
      type: string
      description: Comment ID
      required: false
    body:
      type: string
      description: Body of comment
      required: false
    author:
      description: Author
      type: user
      required: false
  issue:
    id:
      type: string
      description: Issue ID
      required: false
    project:
      type: string
      description: Project
      required: false
    key:
      type: string
      description: Issue Key
      required: false
    status:
      type: string
      description: Status
      required: false
    url:
      type: string
      description: Issue URL
      required: false
    summary:
      type: string
      description: Summary
      required: false
    description:
      type: string
      description: Description
      required: false
    resolution:
      type: string
      description: Resolution
      required: false
    labels:
      type: '[]string'
      description: Labels
      required: false
    reporter:
      type: string
      description: Reporting User
      required: false
    assignee:
      type: string
      description: Assigned User
      required: false
    created_at:
      type: string
      description: Created At
      required: false
    updated_at:
      type: string
      description: Updated At
      required: false
    resolved_at:
      type: string
      description: Resolved At
      required: false
    attachments:
      type: '[]file'
      description: Attachments
      required: false
    fields:
      type: object
      description: Full list of fields
      required: false
connection:
  url:
    title: URL
    type: string
    description: Jira URL
    default: https://example.atlassian.net
    required: false
    example: https://example.atlassian.net
  user:
    title: User
    type: string
    description: Jira user email
    required: true
    example: user@example.com
  api_key:
    title: API Key
    type: credential_secret_key
    description: Jira API key (Jira password is not supported)
    required: true
    example: 9de5069c5afe602b2ea0a04b66beb2c0
actions:
  transition_issue:
    title: Transition Issue
    description: Transition an issue
    input:
      id:
        title: ID
        type: string
        description: Issue ID
        required: true
        example: 10001
      transition:
        title: Transition
        type: string
        description: ID or name of transition to perform, e.g. In Progress
        required: true
        example: 31
      comment:
        title: Comment
        type: string
        description: Comment to add
        required: false
        example: "Transition executed by InsightConnect"
      fields:
        title: Fields
        type: object
        description: 'Custom fields to assign. Fields used must be present on the screen used for project, issue, and transition type
           e.g: { "field1": { "attribute1": "value1" }, "field2": { "attribute2": "value2" }}'
        required: false
        example: '{ "fields": { "project": { "key": "TEST" }, "summary": "Test Ticket", "description": "Test ticket created from InsightConnect", "issuetype": { "name": "Story" } } }'
    output:
      success:
        title: Success
        type: boolean
        description: True if successful
        required: false
  find_issues:
    title: Find Issues
    description: Search for issues
    input:
      jql:
        title: JQL
        type: string
        description: JQL search string to use
        required: true
        example: 'project = "TEST"'
      max:
        title: Max
        type: integer
        description: Max results to return
        default: 10
        required: true
        example: 10
      get_attachments:
        title: Get Attachments
        description: Get attachments from issue
        required: false
        type: boolean
        default: false
        example: true
    output:
      issues:
        title: Issues
        type: '[]issue'
        required: false
        description: The list of found issues
  assign_issue:
    title: Assign Issue
    description: Assign an issue to a user
    input:
      id:
        title: ID
        type: string
        description: Issue ID
        required: true
        example: 10001
      assignee:
        title: Assignee
        type: string
        description: Username of assignee
        required: true
        example: user1
    output:
      success:
        title: Success
        type: boolean
        description: True if successful
        required: false
  label_issue:
    title: Label Issue
    description: Label issue
    input:
      id:
        title: ID
        type: string
        description: Issue ID
        required: true
        example: 10001
      label:
        title: Label
        type: string
        description: Label to add. To add multiple labels, separate by commas
        required: true
        example: documentation
    output:
      success:
        title: Success
        type: boolean
        description: True if successful
        required: false
  get_comments:
    title: Get Comments
    description: Retrieve all comments on an issue
    input:
      id:
        title: ID
        type: string
        description: Issue ID
        required: true
        example: TEST-1
    output:
      count:
        title: Count
        type: integer
        description: Count of comments found
        required: false
      comments:
        title: Comments
        type: '[]comment'
        description: Comments list
        required: false
  comment_issue:
    title: Comment Issue
    description: Comment on an issue
    input:
      id:
        title: ID
        type: string
        description: Issue ID
        required: true
        example: 10001
      comment:
        title: Comment
        type: string
        description: Comment to add
        required: true
        example: "This comment was added by InsightConnect"
    output:
      comment_id:
        title: Comment ID
        type: string
        description: Comment ID
        required: false
  get_issue:
    title: Get Issue
    description: Retrieve an issue
    input:
      id:
        title: ID
        type: string
        description: Issue ID
        required: true
        example: TEST-1
      get_attachments:
        title: Get Attachments
        description: Get attachments from issue
        required: false
        type: boolean
        default: false
        example: false
    output:
      found:
        title: Found
        type: boolean
        description: True if found
        required: false
      issue:
        title: Issue
        type: issue
        description: Found issue
        required: false
  find_users:
    title: Find Users
    description: Search for a set of users
    input:
      query:
        title: Query
        type: string
        description: Query String, e.g. Joe
        required: true
        example: Joe
      max:
        title: Max
        type: integer
        description: Max results to return
        default: 10
        required: true
        example: 10
    output:
      users:
        title: Users
        type: '[]user'
        required: false
        description: The list of found users
  delete_user:
    title: Delete User
    description: Delete a user account
    input:
      username:
        title: Username
        type: string
        description: Username
        required: false
        example: user1
      account_id:
        title: Account ID
        type: string
        description: Unique identifier for an Atlassian account
        required: false
        example: 5ec00968833be70b7e50df20
    output:
      success:
        title: Success
        type: boolean
        description: True if successful
        required: false
  create_user:
    title: Create User
    description: Create a user account
    input:
      username:
        title: Username
        type: string
        description: Username
        required: false
        example: user1
      email:
        title: Email
        type: string
        description: Email
        required: true
        example: user1@example.com
      password:
        title: Password
        type: string
        description: Password
        required: false
        example: mypassword
      notify:
        title: Notify
        type: boolean
        description: Notify if true
        default: false
        required: true
        enum:
          - true
          - false
        example: false
    output:
      success:
        title: Success
        type: boolean
        description: True if successful
        required: false
  attach_issue:
    title: Add Attachment to Issue
    description: Add an attachment to an issue in Jira
    input:
      id:
        title: ID
        type: string
        description: Issue ID
        required: true
        example: 10001
      attachment_bytes:
        title: Attachment Bytes
        type: bytes
        description: Attachment bytes
        required: true
        example: "TVqQAAMAAAAEAAAA//8AALgAAAAAAA..."
      attachment_filename:
        title: Attachment Filename
        type: string
        description: Attachment filename. Must end with a filetype extension if possible
        required: true
        example: document.pdf
    output:
      id:
        title: ID
        type: string
        description: ID of attachment
        required: false
  create_issue:
    title: Create Issue
    description: Create an issue in Jira
    input:
      summary:
        title: Summary
        type: string
        description: Issue summary
        required: false
        example: "Connect Jira to InsightConnect"
      type:
        title: Type
        type: string
        description: Issue type. Typical issues type include Task, Story, Epic, Bug.
          You can also specify a custom issue type. This input is case-sensitive
        default: Task
        required: false
        example: Story
      description:
        title: Description
        type: string
        description: Issue description
        required: false
        default: ''
        example: "Successfully connect Jira to InsightConnect to automate ticket management"
      project:
        title: Project
        description: Project ID
        type: string
        required: true
        example: TEST
      fields:
        title: Fields
        type: object
        description: Custom fields to assign. Fields used must be present on the same
          screen as the Create screen in Jira
        required: false
        example: '{ "fields": { "project": { "key": "TEST" }, "summary": "Test Ticket", "description": "Test ticket created from InsightConnect", "issuetype": { "name": "Story" } } }'
      attachment_bytes:
        title: Attachment Bytes
        type: bytes
        description: Attachment bytes
        required: false
        example: "TVqQAAMAAAAEAAAA//8AALgAAAAAAA..."
      attachment_filename:
        title: Attachment Filename
        type: string
        description: Attachment filename
        required: false
        example: document.pdf
    output:
      issue:
        title: Issue
        type: issue
        description: Created issue
        required: false
  edit_issue:
    title: Edit Issue
    description: Edit an issue within Jira
    input:
      id:
        title: ID
        description: Issue ID
        type: string
        required: true
        example: TEST-1
      notify:
        title: Notify
        description: Will send a notification email about the issue updated. Admin and project admins credentials need to be used to disable the notification
        type: boolean
        required: true
        default: true
        example: false
      summary:
        title: Summary
        description: Summary field on the issue
        type: string
        required: false
        example: "Connect Jira to InsightConnect for Multiple Teams"
      description:
        title: Description
        description: Description field on the issue
        type: string
        required: false
        example: "Update ticket with additional Jira information for others teams wanting to leverage InsightConnect"
      fields:
        title: Fields
        description: An object of fields and values to change
        type: object
        required: false
        example: '{ "fields": { "project": { "key": "TEST" }, "summary": "Test Ticket", "description": "Test ticket created from InsightConnect", "issuetype": { "name": "Story" } } }'
      update:
        title: Update
        description:  An object that contains update operations to apply, see examples at https://developer.atlassian.com/server/jira/platform/updating-an-issue-via-the-jira-rest-apis-6848604/
        type: object
        required: false
        example: '{ "update": { "labels": [ {"add": "newlabel"} ] } }'
    output:
      success:
        title: Success
        description: If changes were successful
        type: boolean
        required: false
triggers:
  new_issue:
    title: New Issue
    description: Trigger which indicates that a new issue has been created
    input:
      project:
        title: Project
        description: Project ID or name
        type: string
        required: true
        example: TEST
      jql:
        title: JQL
        type: string
        description: JQL search string to use
        required: false
        example: 'project = "TEST"'
      get_attachments:
        title: Get Attachments
        description: Get attachments from issue
        required: false
        type: boolean
        default: false
        example: false
      poll_timeout:
        title: Poll Timeout
        description: Timeout between next poll, default 60
        required: false
        type: integer
        default: 60
        example: 60
    output:
      issue:
        title: Issue
        type: issue
        description: New issue
        required: false
Other plugins
Microsoft Windows Defender ATP
Rapid7   |   v4.3.0
Plugin
Get
JSON
Rapid7   |   v1.1.5
Plugin
Get
Basename
Rapid7   |   v1.1.0
Plugin
Get
Gmail
Rapid7   |   v6.0.2
Plugin
Get
Microsoft Teams
Rapid7   |   v2.2.0
Plugin
Get