Documentation and Knowledge Base
Functional Overview
Issue AI Analytics for Jira introduces new analytics functionality for Jira issues. It exposes an Enable AI Analytics button in the Issue View screen. Once button is pressed, the issue summary and description are sent for analysis to an external AI engine. The analysis results are displayed as tabs, through a new panel in the Issue View screen.
Example:
The tabs that are displayed and the analysis that is done by the AI engine is configurable, depending on the needs of your organization (reference Configuration section).
The following analytics tabs are available by default:
The following AI engines are supported:
Issue AI Analytics integrates Jira with an external AI provider for analytics through a Heroku server. This can be visualized as follows:
The Deview Studios app server is hosted on the Heroku platform and is the entry point for the integration.
Integration process triggers whenever the Enable AI Analytics button is pressed in the Issue View screen. Only the issue summary and description are sent for analysis.
First time analytics generation for an issue can take between 20-60 seconds. This is primarily due to the processing time needed by the AI provider. Once generated, analytics are cached in an analytics database and every subsequent display of analytics results in the Issue View screen is immediate. Analytics results will be re-generated, if issue summary or description is changed.
The analytics database only caches analytics results and never stores issue summary or description. Analytics results are stored fully encrypted in the database. Caching is required to provide better user experience, by not mandating the user to wait 20-60 seconds every time.
The following conditions must be met in order to use Issue AI Analytics for Jira:
Issue AI Analytics for Jira is installed as a standard application through the Universal Plugin Manager (UPM).
Follow these steps:
There is a separate configuration page available, with all configuration options. To navigate it, go to to the Manage Apps screen, open Issue AI Analytics for Jira and select the Configure button.
The following configuration settings are available:
A system administrator may change what tabs are displayed and how analytics are generated (at the analytics tab level). This allows support for various different use cases, specific to your organization. To change the default behaviour, you may override the settings of the existing tabs by modifying the following parameters:
A project administrator may change what tabs are displayed and how analytics are generated (at the analytics tab level), for a particular project. The configuration functionality is accessible through:
The following settings are available and are applicable only for the current project:
A system administrator may bulk enable analytics for multiple issues at once. This functionality is accessible through a separate menu item. To navigate it, go to to the Manage Apps screen, under Issue AI Analytics section and select the Bulk Enable Analytics Wizard menu. You may use this menu if Advanced Features is enabled.
Select a project and optionally add additional JQL filters. Once ready, press the Bulk Enable button. It’s recommended to narrow down the number of issues as much as possible for faster processing.
You must not close your browser, or navigate away from this page while the wizard is running.
Note that enabling analytics for a big amount of issues, can take a significant amount of time. Always make sure to test the functionality on a smaller project.
Once analytics for an issue are generated, they will be available immediately whenever the Issue View page is re-opened. Analytics will be re-generated automatically, when issue summary or description changes.
Issue AI Analytics for Jira has the following limitations:
Issue AI Analytics for Jira has the following known issues:
Functional Overview
Issue AI Analytics for Jira introduces new analytics functionality for Jira issues. It exposes an Enable AI Analytics button in the Issue View screen. Once button is pressed, the issue summary and description are sent for analysis to an external AI engine. The analysis results are displayed as tabs, through a new panel in the Issue View screen.
Example:
The tabs that are displayed and the analysis that is done by the AI engine is configurable, depending on the needs of your organization (reference Configuration section).
The following analytics tabs are available by default:
The following AI engines are supported:
Issue AI Analytics integrates Jira with an external AI provider for analytics through a Heroku server. This can be visualized as follows:
The Deview Studios app server is hosted on the Heroku platform and is the entry point for the integration.
Issue AI Analytics for Jira Data Center also supports Private AI Mode. If enabled, the Heroku cloud server is not used and no data is sent to the Internet, with the expectation that there is a Private AI model hosted within the same datacenter:
Integration process triggers whenever the Enable AI Analytics button is pressed in the Issue View screen. Only the issue summary and description are sent for analysis.
First time analytics generation for an issue can take between 20-60 seconds. This is primarily due to the processing time needed by the AI provider. Once generated, analytics are cached in an analytics database and every subsequent display of analytics results in the Issue View screen is immediate. Analytics results will be re-generated, if issue summary or description is changed.
The integration process for Jira Data Center can be visualized as follows. There’s a difference in how analytics are generated, depending if Cloud AI mode or Private AI mode is enabled.
In this case the analytics database is the local Jira database. Caching is required to provide better user experience, by not mandating the user to wait 20-60 seconds every time.
If Private AI mode is enabled, Heroku cloud server is not used and no data is sent to the Internet.
The following conditions must be met in order to use Issue AI Analytics for Jira:
Issue AI Analytics for Jira is installed as a standard application through the Universal Plugin Manager (UPM).
Follow these steps:
Issue AI Analytics for Jira Data Center requires that you select the app Integration mode, before you can use it.
There is a separate configuration page available, with all configuration options. To navigate it, go to to the Manage Apps screen, open Issue AI Analytics for Jira and select the Configure button.
The following configuration settings are available:
A system administrator may change what tabs are displayed and how analytics are generated (at the analytics tab level). This allows support for various different use cases, specific to your organization. To change the default behaviour, you may override the settings of the existing tabs by modifying the following parameters:
A project administrator may change what tabs are displayed and how analytics are generated (at the analytics tab level), for a particular project. The configuration functionality is accessible through:
The following settings are available and are applicable only for the current project:
With Private AI mode enabled, you can bring your own AI model as an analytics engine, used by the application. You will need to configure a simple Groovy integration script, that defines the communication protocol with the AI engine. Without configuring the script, the app will not function properly and will not be able to generate analytics. By default, a sample script is available that serves as example – it can be modified or adapted.
The script will be invoked every time when new analytics have to be generated (separately per analytics tab). For example, if you have 4 analytics tabs enabled, the script will be invoked sequentially 4 times.
Script invocation lifecycle is as follows:
For proper execution the following best practises must be followed:
The following variables are available for use within the script:
import com.atlassian.jira.util.json.*
def aiQuery = issueSummary + "\r\n" + issueDescription + "\r\n---\r\n" + query // Build the query that will be sent for analysis
def payload = new JSONObject() // Prepare body as per API specification
.put("model", "gpt-3.5-turbo")
.put("messages", new JSONArray()
.put(new JSONObject()
.put("role", "user")
.put("content", aiQuery)))
.put("temperature", 1.0)
.toString();
def post = new URL("https://api.openai.com/v1/chat/completions").openConnection() // Create a new request to specified URL
logger.debug("Preparing POST body: " + payload)
post.setConnectTimeout(60000) // Set a timeout to 60 seconds - make sure to always set timeouts post.setReadTimeout(60000) // Set a timeout to 60 seconds - make sure to always set timeouts
post.setRequestMethod("POST") // Specify HTTP method
post.setDoOutput(true) // Specify our HTTP request has a body
post.setRequestProperty("Content-Type", "application/json") // Set HTTP header
post.setRequestProperty("Authorization", "Bearer YOUR_TOKEN") // Set HTTP header
post.getOutputStream().write(payload.getBytes("UTF-8")) // Set HTTP body
def postRC = post.getResponseCode() // Send POST request
def response = post.getInputStream().getText() // Read response body
logger.debug("Response code is: " + postRC + "; Response body is: " + response)
if (postRC.equals(200)) { // Verify request is successful
def json = new JSONObject(response) // Read as JSON
def result = json.getJSONArray("choices").getJSONObject(0).getJSONObject("message").get("content") // Traverse JSON tree
return result // This script must always return the produced analytics
}
throw new Exception("Unsuccessful request! HTTP response code is " + postRC + "; Response body is: " + response) // Throw error due to unsuccessful request
Once analytics for an issue are generated, they will be available immediately whenever the Issue View page is re-opened.
If enabled by an administrator, analytics will be re-generated automatically, when issue summary or description changes. Otherwise, analytics will be re-generated, when the Re-generate button is pressed in the analytics panel (new analytics will be displayed, only if the issue summary or description have been changed).
Issue AI Analytics for Jira has the following limitations:
To enable logging for Issue AI Analytics, go to Jira Adminsitration -> System -> Logging and Profiling and click on Configure under Default loggers. Add the following entry: com.deview_studios.atlassian.jira.dc.issue_ai_analytics and set the logging level to DEBUG.
Issue AI Analytics for Jira has the following known issues: