Ticketing Integrations
Qodo Merge enhances the code review process by integrating with your ticket management system. It automatically surfaces relevant ticket data alongside code changes, helping reviewers understand the intent behind a pull request.
Ticket data
When a ticket is recognized, Qodo Merge fetches the following fields:
Ticket Title
Ticket Description
Custom Fields (acceptance criteria)
Subtasks (linked tasks)
Labels
Attached or screenshots
Ticket Recognition Criteria
A ticket is linked to a PR if:
The PR description contains a direct link to the ticket, or
The branch name begins with the ticket ID or number
Tool Behavior
Describe tool
When a ticket is recognized, the describe tool includes ticket content (title, description, labels) in its analysis. This provides the model with additional context for understanding the purpose behind the code changes.
Review tool
The review tool also incorporates ticket context into its analysis. Additionally, it evaluates whether the PR aligns with the ticket’s intent, assigning one of the following labels:
Fully Compliant: PR directly addresses the ticket requirements
Partially Compliant: PR covers some but not all of the requirements
Not Compliant: PR does not align with the ticket’s intent
PR Code Verified: Code appears valid for the ticket, but additional manual testing (e.g., UI checks across devices) is required

Configuration Options
By default, the tool will automatically validate if the PR complies with the referenced ticket. If you want to disable this feedback, add the following line to your configuration file:
[pr_reviewer]
require_ticket_analysis_review=false
You can also set:
[pr_reviewer]
check_pr_additional_content=true
When enabled, Qodo Merge will check that all code changes are related to the ticket. If unrelated content is found, the PR will be downgraded (e.g., to PR Code Verified), and a comment will indicate the extra content. The default is false
.
GitHub Issues Integration
Qodo Merge will automatically recognize GitHub issues mentioned in the PR description and fetch the issue content.
Examples of valid GitHub issue references:
https://github.com/<ORG_NAME>/<REPO_NAME>/issues/<ISSUE_NUMBER>
#<ISSUE_NUMBER>
<ORG_NAME>/<REPO_NAME>#<ISSUE_NUMBER>
Since Qodo Merge is integrated with GitHub, it doesn't require any additional configuration to fetch GitHub issues.
Linear Integration
Linear App Authentication
The recommended way to authenticate with Linear is to connect the Linear app through the Qodo Merge portal.
Installation steps:
Go to the Qodo Merge integrations page.
Navigate to the Integrations tab.
Click on the Linear button to connect the Linear app.
Follow the authentication flow to authorize Qodo Merge to access your Linear workspace.
Once connected, Qodo Merge will be able to fetch Linear ticket context for your PRs.
How to link a PR to a Linear ticket
Qodo Merge will automatically detect Linear tickets using either of these methods:
Method 1: Description Reference:
Include a ticket reference in your PR description using either:
The complete Linear ticket URL:
https://linear.app/[ORG_ID]/issue/[TICKET_ID]
The shortened ticket ID:
[TICKET_ID]
(e.g.,ABC-123
) This method requireslinear_base_url
configuration (see below).
Method 2: Branch Name Detection:
Name your branch with the ticket ID as a prefix (e.g., ABC-123-feature-description
or feature/ABC-123/feature-description
).
Linear Base URL
For shortened ticket IDs or branch detection, you must configure the Linear base URL in your configuration file under the [linear] section:
[linear]
linear_base_url = "https://linear.app/[ORG_ID]" # your Linear organization identifier
Jira Integration
Jira Cloud
There are two ways to authenticate with Jira Cloud:
1. Jira App Authentication
The recommended way to authenticate with Jira Cloud is to install the Qodo Merge app in your Jira Cloud instance. This will allow Qodo Merge to access Jira data on your behalf.
Installation steps:
Go to the Qodo Merge integrations page.
Click on Connect Jira Cloud to connect the Jira Cloud app.
Click Accept.
After installing the app, you will be redirected to the Qodo Merge registration page where you'll see a success message.
Qodo Merge is now able to fetch Jira ticket context for your PRs.
2. Email/Token Authentication
You can create an API token from your Atlassian account:
Log in to the API tokens page on Jira.
Click Create API token.
Enter a name for your new token and click Create.
Click Copy to clipboard.
Add the following lines in your configuration file:
[jira]
jira_api_token = "YOUR_API_TOKEN"
jira_api_email = "YOUR_EMAIL"
Jira Data Center/Server
Using Basic Authentication
You can use your Jira username and password to authenticate with Jira Data Center/Server.
In your Configuration file/Environment variables/Secrets file, add the following lines:
jira_api_email = "your_username"
jira_api_token = "your_password"
Validating Basic authentication via Python script
If you are facing issues retrieving tickets in Qodo Merge with Basic auth, you can validate the flow using a Python script.
The following steps will help you check if the basic auth is working correctly, and if you can access the Jira ticket details:
Run:
pip install jira==3.8.0
Run the following Python script. Make sure to replace the placeholders with your actual values:
from jira import JIRA
if __name__ == "__main__":
try:
# Jira server URL
server = "https://..."
# Jira PAT token
token_auth = "..."
# Jira ticket code (e.g. "PROJ-123")
ticket_id = "..."
print("Initializing JiraServerTicketProvider with JIRA server")
# Initialize JIRA client
jira = JIRA(
server=server,
token_auth=token_auth,
timeout=30
)
if jira:
print(f"JIRA client initialized successfully")
else:
print("Error initializing JIRA client")
# Fetch ticket details
ticket = jira.issue(ticket_id)
print(f"Ticket title: {ticket.fields.summary}")
except Exception as e:
print(f"Error fetching JIRA ticket details: {e}")
How to link a PR to a Jira ticket
To integrate with Jira, you can link your PR to a ticket using either of these methods:
Method 1: Description Reference
Include a ticket reference in your PR description, using either the complete URL format https://<JIRA_ORG>.atlassian.net/browse/ISSUE-123
or the shortened ticket ID ISSUE-123
(without prefix or suffix for the shortened ID).
Method 2: Branch Name Detection
Name your branch with the ticket ID as a prefix (e.g., ISSUE-123-feature-description
or ISSUE-123/feature-description
).
Jira Base URL
For shortened ticket IDs or branch detection (method 2 for JIRA cloud), you must configure the Jira base URL in your configuration file under the [jira]
section:
[jira]
jira_base_url = "https://<JIRA_ORG>.atlassian.net"
Where <JIRA_ORG>
is your Jira organization identifier (e.g., mycompany
for https://mycompany.atlassian.net
).
Multi-JIRA Server Configuration
Qodo Merge supports connecting to multiple JIRA servers using different authentication methods.
Email/Token (Basic Auth)
Configure multiple servers using Email/Token authentication in your configuration file.
Example Configuration:
[jira]
# List of Jira Server URLs
jira_servers = ["https://company.atlassian.net", "https://datacenter.jira.com"]
# List of API tokens (for Cloud) or passwords (for Data Center)
jira_api_token = ["cloud_api_token_here", "datacenter_password"]
# List of emails (for Cloud) or usernames (for Data Center)
jira_api_email = ["[email protected]", "datacenter_username"]
# Default server for ticket IDs
# Each repository can configure its own jira_base_url in a local config file
# to choose which server to use by default.
jira_base_url = "https://company.atlassian.net"
PAT Auth
Configure multiple servers using Personal Access Token authentication in your configuration file.
Example Configuration:
[jira]
# List of JIRA server URLs
jira_servers = ["https://server1.jira.com", "https://server2.jira.com"]
# List of PAT tokens
jira_api_token = ["pat_token_1", "pat_token_2"]
# Default server for ticket IDs
# Each repository can configure its own jira_base_url in a local config file
# to choose which server to use by default.
jira_base_url = "https://server1.jira.com"
Mixed Authentication (Email/Token + PAT):
[jira]
jira_servers = ["https://company.atlassian.net", "https://server.jira.com"]
jira_api_token = ["cloud_api_token", "server_pat_token"]
jira_api_email = ["[email protected]", ""] # Empty for PAT
Jira Cloud App
For Jira Cloud instances using App Authentication:
Install the Qodo Merge app on each JIRA Cloud instance you want to connect to.
In your configuration file, set the default server for ticket ID resolution:
[jira]
jira_base_url = "https://primary-team.atlassian.net"
Full URLs (e.g., https://other-team.atlassian.net/browse/TASK-456
) will automatically use the correct connected instance.
Last updated
Was this helpful?