JIRA
Overview
JIRA, developed by Atlassian, is a powerful tool widely used for issue tracking, project management, and team collaboration. By integrating JIRA with Enov8, you can streamline the flow of information between the two platforms, ensuring that critical updates and data are synchronized in real-time.
The integration leverages JIRA webhooks to automatically send information back to the Enov8 platform whenever specific events occur. This setup is particularly useful for keeping Enov8 up-to-date with the latest environment defects, incidents, service requests, and project information as they are created or updated in JIRA. This seamless connection enhances operational efficiency by reducing manual data entry and ensuring that all stakeholders have access to the most current information.
Prerequisites
Before integrating JIRA with the Enov8 platform, ensure the following prerequisites are met:
JIRA Access and Permissions
- Ensure you have administrative access to your JIRA instance to create and manage webhooks.
- Verify that your JIRA instance is accessible via the internet or the necessary network configurations are in place for communication with Enov8.
Enov8 Access and Permissions
- Ensure you have the necessary permissions within Enov8 to configure integrations in Orchestration Management Module and access to Add-On section.
Enov8 REST API Authentication
- Obtain Enov8 REST API User ID & Key required for configuring the webhook listener to update Enov8. Ensure these credentials have the appropriate read and update permissions.
To obtain the REST API authentication details for Enov8, please refer to Generating an API Key section.
Integration Steps
Add JIRA Webhook Listener
The first step in this integration is to add the JIRA Webhook Listener in Enov8 which will listen to incoming message from JIRA Webhook.
To add, navigate to Orchestration Management >> Administration >> AddOns
Click on "+ Add to library" on the JIRA Listener Panel.
Provide a user friendly name for your listener and click "Save". This will add the webhook listener to Orchestration Manager Script Listing.
Generate Webhook URL
Now navigate to Orchestration Management >> Scripts >> Manage Scripts. In this section, you will see a list of all the scripts that have been configured in ecosystem. Locate the webhook listener script added by you in the previous step and make a note of the Script ID.
Replace the Script ID in the URL below with the above Script ID Value to form the webook URL for JIRA.
{vo url}/client/scripts/{Script ID}/index.php
Provide this URL to your JIRA Administrator to setup a webhook in JIRA to trigger based on your required event. Common events include issue creation, updates, and status changes.
To successfully integrate JIRA with Enov8, you'll need to set up webhooks in JIRA. If you're unfamiliar with how to create and configure webhooks, please refer to the official Atlassian documentation for detailed instructions:
This guide provides step-by-step instructions on how to create, configure, and manage webhooks in JIRA, ensuring that you can effectively send data to the Enov8 platform.
Configure Webhook Listener Mapping
The next step in the integration is to configure the mapping in the webhook listener. To edit the mapping, click on the explorer icon in the listing.
Select config.json in the file dropdown. This will open the config in the file editor.
The first step in configuring the mapping is to provide enov8 platform REST API Authenication details in the below section of the config.
API Section
"api_details": {
"app_id":"EXAMPLE_APP_ID",
"app_key":"EXAMPLE_APP_KEY",
"user_id":"EXAMPLE_USER_ID",
"enov8_url":"http://EXAMPLE_HOST/ecosystem/",
"default_org":"ORG_ECO_ID"
}
The next step in configuring the mapping of the payload which will be recieved from JIRA to enov8 class properties.
JIRA Ecosystem Field Mapping Section
The below example provides a sample mapping to map JIRA Payload to ecosystem LeanSR Class properties. On receiving the payload from JIRA, it will automatically create / update a LeanSR ticket in enov8 platform.
"jira": {
"unique_id": "Source System ID",
"class": "LeanSR",
"mapping": [
{
"ecosys": "Start Timestamp",
"source": "issue.fields.created",
"mandatory": false,
"default_value": null,
"workflow": "__TIME| %Y-%m-%dT%H:%M:%S.%f"
},
{
"ecosys": "Source System ID",
"source": "issue.key",
"mandatory": true,
"default_value": null,
"workflow": null
},
{
"ecosys": "Summary",
"source": "issue.fields.summary",
"mandatory": true,
"default_value": null,
"workflow": null
},
{
"ecosys": "Priority",
"source": "issue.fields.priority.name",
"mandatory": true,
"default_value": null,
"workflow": null
},
{
"ecosys": "Type",
"source": "issue.fields.issuetype.name",
"mandatory": true,
"default_value": null,
"workflow": "Task:EnvIncident|Bug:EnvBug"
},
{
"ecosys": "Status",
"source": "issue.fields.status.name",
"mandatory": true,
"default_value": "Assigned",
"workflow": "Backlog:Submitted|To Do:Submitted|In Progress:Assigned|Done:Approved"
},
{
"ecosys": "Percentage Completed",
"source": "issue.fields.progress.percent",
"mandatory": false,
"default_value": 0,
"workflow": null
},
{
"ecosys": "Description",
"source": "issue.fields.description",
"mandatory": false,
"default_value": null,
"workflow": null
},
{
"ecosys": "Assigned To",
"source": "issue.fields.assignee.displayName",
"mandatory": true,
"default_value": null,
"workflow": {
"unique_id": "User ID",
"class": "User"
}
},
{
"ecosys": "SystemInstance",
"source": "issue.fields.components.[].name",
"mandatory": false,
"default_value": "",
"workflow": {
"unique_id": "Resource Name",
"class": "SystemInstance"
}
},
{
"ecosys": "Tag",
"source": "issue.fields.labels.[]",
"mandatory": false,
"default_value": null,
"workflow": "__TAG|labels"
},
{
"ecosys": "Comment",
"source": "comment.body",
"mandatory": false,
"default_value": null,
"workflow": null
},
{
"ecosys": "Tag",
"source": "issue.id",
"mandatory": false,
"default_value": null,
"workflow": "__TAG|issue_id"
},
{
"ecosys": "SLA Status",
"source": null,
"mandatory": false,
"default_value": "Successful",
"workflow": null
}
]
}