shesmu

JIRA Plugin

JIRA is an issue and project tracking application. The JIRA plugin for Shesmu can be used to:

To set up a JIRA integration, create a file ending in .jira as follows:

  {
    "authentication": null,
    "closedStatuses": [
      "CLOSED",
      "RESOLVED"
    ],
    "defaultFieldValues": {},
    "issueType": "Bug",
    "projectKey": "PK",
    "searches": [],
    "url": "https://jira.example.com",
    "version": "V2"
  }

Shesmu supports "V2" (datacenter) and "V3" (cloud) API versions.

closedStatuses are the statuses of issues that should be considered closed. Any other status is considered open.

The url defines the JIRA server that will be used and authentication is the authentication mechanism to use. It is the same as the authentication configuration described for input definitions. One configuration file is needed for each JIRA project, which is specified in the projectKey property. Normally, the closeActions, reopenActions, and closedStatuses will be the same for most projects on a JIRA server, but they need not be, hence the need for separate configuration files.

Shesmu needs to create and reopen issues, but it can only do so if there are either no mandatory fields to fill in beyond the summary and description or it has the required fields. defaultFieldValues provides values to use on required fields. Fields which are not required are not sent even if a default is provided. Shesmu allows setting an assignee on new tickets, but the assignee field must be available in the Create Ticket window or an error will occur.

The searches section allow JIRA tickets to be integrated with Shesmu’s action searches on the Actions page. The idea is meant for the following use case: if there is a person responsible for fixing failing actions from Shesmu, how should they delegate those issues? Using searches per the following:

"searches": [
  {
    "filter": {
      "states": [
        "FAILED",
        "UNKNOWN",
        "HALP"
      ],
      "type": "status"
    },
    "jql": "project IN (\"GC\", \"GDI\") AND resolution = Unresolved",
    "name": "Problems from {key} - {summary} ({assignee})",
    "type": "EACH_AND"
  },
  {
    "filter": {
      "states": [
        "FAILED",
        "UNKNOWN",
        "HALP"
      ],
      "type": "status"
    },
    "jql": "project IN (\"GC\", \"GDI\") AND resolution = Unresolved",
    "name": "Pipeline Lead Dashboard",
    "type": "ALL_EXCEPT"
  },
  {
    "filter": {
      "states": [
        "FAILED",
        "UNKNOWN",
        "HALP"
      ],
      "type": "status"
    },
    "jql": "project IN (\"GC\", \"GDI\") AND resolution = Unresolved",
    "name": "Problems Currently Handed-Off",
    "type": "ALL_AND"
  }
],

Each search has a jql expression which is used to extract tickets from JIRA. Any matching tickets have their descriptions scanned for action identifiers or text-encoded searches (available from the Action and Olive pages by going to Export Search, then Copy to Clipboard for Ticket).

These collected searches are combined with the base search filter using the type. There are 3 types supported:

Searches can also be export back to JIRA from Shesmu. By setting the "issueType" property to the name of an issue type for this project, the Export Search button will have an entry to create a new issue with the current search already in the description. If the "issueType" is null or not an issue type present in the project, the button will not appear.