Jira ITSM Integration

 

The Jira ITSM integration with FlexDeploy requires a user with permission to create Change Requests and Incidents, and an API token. The steps in Jira are shown below.

Preparing for JIRA ITSM Integration with FlexDeploy

You need to create an API token for use in FlexDeploy. The API token will be encoded using base64 before used in the request to get change request or create any new request

  1. Log into Jira ITSM

  2. Go to Account Settings

  3. Click Security

  4. Click Create and Manage Tokens

  5. Here, you can create a new API token, and use this token for your Jira ITSM instance in FlexDeploy.

Permissions

The user configured in FlexDeploy must have permission to access and create tickets. You can view and update permissions for your Jira ITSM project from Project Settings → Permissions.

From this menu, you can view and change which users and roles can create issues as needed. To view the role assigned to each user, go to Project Settings → Team.

After configuring this user in Jira ITSM, go to FlexDeploy and create a Jira ITSM instance to start using the integration. 

Create Issue Tracking Instance

Property Name

Property Code

Required

Description

Property Name

Property Code

Required

Description

Jira URL

FDJIRAITSM_URL

Yes

Jira URL (http://myjira.atlassian.net)

Jira User

FDJIRAITSM_USER_NAME

Yes

Jira User Name

Jira Auth Type

FDJIRAITSM_AUTH_TYPE

No

@since 7.0.0.12 Authentication method for connecting to Jira. Defaults to BasicAuth.

Useful for connecting to On-premise instances of Jira where basic authentication will not work with username and password or API token alike. In those cases authentication type must be set to the BearerToken and API token provided.

If AuthType is BearerToken, then FDJIRAITSM_USER_NAMEvalue is not used. You can set any value for FDJIRAITSM_USER_NAMEin that case as it is required.

Jira API Token

FDJIRAITSM_API_TOKEN

Yes

API token for Jira

Note that encrypted properties are stored in Credential Store (Local or External) and can be configured using Edit button next to credential name drop down. Alternatively, you can reuse single credential for multiple properties also, in which case you should name that credential appropriately.

Jira Ticket URL Pattern

FDJIRAITSM_TICKET_URL_PATTERN

Yes

The URL to open Jira ITSM and navigate to the change ticket associated to the project workflow execution

  • Default URL pattern is /browse/{JIRA_CHANGE_NUMBER}

  • The URL should include {JIRA_CHANGE_NUMBER} string as the execution system will replace it with the actual change number during execution

Jira GET Rest API Pattern

FDJIRAITSM_TICKET_REST_GET_PATTERN

Yes

Jira Rest API URL Pattern for a GET request

  • Default URL is /rest/api/2/issue/{JIRA_CHANGE_NUMBER}

  • If needed, you can change and use your custom GET URL pattern for Jira ITSM REST endpoint.  The URL should include {JIRA_CHANGE_NUMBER} string as the execution system will replace it with the actual change number during execution.

  • The response from Jira can be optimized by providing specific element details which should be returned in response. As a result the payload size shall be reduced and performance also shall be improved. In case there is Approval check validation on any other fields, same also should be added in the fields list.

    /rest/api/2/issue/{JIRA_CHANGE_NUMBER}?fields=status,summary

Jira POST Rest API Pattern

FDJIRAITSM_TICKET_REST_POST_PATTERN

Yes

Jira Rest API URL pattern for creating a change ticket

  • Default URL pattern is /rest/api/2/issue

  • If needed, you can change and use your custom URL to create a new change using the POST operation

Approved Check Script

FDJIRAITSM_APPROVED_SCRIPT

No

A Groovy expressions which determines whether a task for the change ticket is approved or not.  The expression must return a boolean, and has access to the following variables:

  • TICKET - an object with fields (JSON) contained in the change ticket, as returned by the Jira ITSM REST API.  Fields are referenced as TICKET.<field name>.<sub-field name>

  • FD_ENVIRONMENT_CODE - The environment for a particular deployment request or associated pipeline stage.

If the Approved Check Script is left blank, the default implementation checks the status of the ticket to determine if it's approved. Statuses of awaiting implementation, implementing, and completed are considered approved and return true.

Default Check
TICKET.fields.status.name == 'Awaiting implementation' || TICKET.fields.status.name == 'Implementing' || TICKET.fields.status.name == 'Completed'
Example that checks custom field value specific to target environment
(TICKET.fields.customfield_10107.status == 'UATApproved' && FD_ENVIRONMENT_CODE='UAT') || (TICKET.fields.customfield_10107.status == 'PRODApproved' && FD_ENVIRONMENT_CODE='PROD')

If you want to see values that can be used, enable FINEST log level for flexagon.fd.model.integration.cms.CMSScript using Admin Operations.

Rejected Check Script

FDJIRAITSM_REJECTED_SCRIPT

No

A Groovy expressions which determines whether a task for a change ticket is rejected or not.  The expression must return a boolean, and as has access to the following variables:

  • TICKET - an object with fields (JSON) contained in the change ticket, as returned by the Jira ITSM REST API.  Fields are referenced as TICKET.<field name>.<sub-field name>

  • FD_ENVIRONMENT_CODE - The environment for a particular deployment request or associated pipeline stage.

If the Rejected Check Script is left blank, the default implementation checks the status of the ticket to determine if it's rejected. Statuses of declined, canceled, and failed are considered rejected and return true.

Additional Info Script

FDJIRAITSM_ADDITIONAL_INFO_SCRIPT

No

A Groovy expression which determines additional information to add to an external approval when it is approved or rejected.  The expression must return a Map<String, String> and have an entry with the key of "notes" for the value to get added to external approval as a task note. Script has access to the following variables:

  • TICKET - an object with fields (JSON) contained in the change ticket, as returned by the ServiceNow REST API.  Fields are referenced as TICKET.<field name>.<sub-field name>

  • FD_ENVIRONMENT_CODE - The environment for a particular deployment request or associated pipeline stage.

Don't poll

FDJIRAITSM_DONT_POLL

No

Disable automatic polling (every minute) of Jira tickets for status changes. The default value is false, which means polling will occur.  Only check this box if you are using the FlexDeploy REST API to communicate ticket approval/rejection.

Jira ITSM Available TICKET Variables

Within the script properties on the Jira ITSM Instance. The following values are available to you via the TICKET object to use in your script logic. For example, TICKET.project.summary would return the summary of the ITSM change.

Field Code

Display Name

Description

Data Type

Required

Field Code

Display Name

Description

Data Type

Required

fields.summary

Summary

Summary of the change

String

Yes

fields.project.key

Project Key

Key of project the change is in

String

Yes

fields.issuetype.name

Issue Type

Type of issue for ticket

String

Yes

fields.description

Description

Description for the change

String

No

fields.priority.name

Priority

Priority of the change

String

No

Configure Folder for Change Management Approvals

Configure JIRA ITSM Change Management Instance on your parent folder. Change management configurations are inherited by sub-folder and projects. This configuration will allow you to integrate Jira ITSM tickets with your FlexDeploy deployment. See Configure Change Management on Folders for more details.

Linking Jira ITSM with FlexDeploy Deployments

If Auto Create Ticket, is not enabled, then user must specific the change ticket number on the deployment request. See Link Change Ticket(s) with Deployments . Otherwise, Change Ticket field will be required in the deployment request form. When change ticket number is passed the ticket number is validated on the external application.

The following macros are not currently supported in the footer:
  • style