Jira provider
This provider is focused on fetching and analyzing issues from Jira Cloud.
IMPORTANT
Before following the steps below, make sure you have followed the Getting Started guide to set up the project.
You should expect to have Jira integration running after these steps:
- Generating the Jira API token
- Configuring Jira connection
- Fetching issues from Jira
- Querying issues via CLI or REST
Generating the Jira API token
To interact with the Jira API and fetch the data needed for this project, you need to generate an API token. Follow these steps:
- Go to https://id.atlassian.com/manage-profile/security/api-tokens
- Click "Create API token" button
- Give your token a meaningful label (e.g., "software-metrics-machine")
- Click "Create" and copy the generated token
- Store it securely - you won't be able to see it again after leaving the page
- Store it in
smm_config.jsonunder the keyjira_token
Check token is working
To check if the token is working, you can set it as environment variables in your terminal session and then do a test request. Start by running the following commands:
export JIRA_URL="https://your-domain.atlassian.net"
export JIRA_TOKEN="your_api_token"
export JIRA_EMAIL="your-email@example.com"Once the variables have been set, test your connection with Jira using the following command:
curl -u "$JIRA_EMAIL:$JIRA_TOKEN" "$JIRA_URL/rest/api/3/myself"A JSON response should be returned with your user information, something similar to the following:
{
"self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=123456",
"accountId": "123456",
"accountType": "atlassian",
"name": "user",
"email": "user@example.com",
"avatarUrls": {
"48x48": "https://...",
"24x24": "https://...",
"16x16": "https://...",
"32x32": "https://..."
},
"displayName": "User Name",
"active": true,
...other fields
}That is it, your Jira credentials are ready.
Configuration
The Jira provider requires these fields in smm_config.json:
{
"projects": [
{
"git_provider": "github",
"github_repository": "owner/repo",
"git_repository_location": "/path/to/repo",
"github_token": "your_github_token",
"jira_url": "https://your-domain.atlassian.net",
"jira_email": "your-email@example.com",
"jira_token": "your_jira_api_token",
"jira_project": "PROJ"
}
]
}Configuration parameters
jira_url: The base URL of your Jira Cloud instance (e.g.,https://your-domain.atlassian.net)jira_email: Your Jira account emailjira_token: Your Jira API token generated from https://id.atlassian.com/manage-profile/security/api-tokensjira_project: The Jira project key you want to analyze (e.g.,PROJ,DEV,BUG)
You can also provide these as environment variables:
export JIRA_URL="https://your-domain.atlassian.net"
export JIRA_EMAIL="your-email@example.com"
export JIRA_TOKEN="your_api_token"
export JIRA_PROJECT="PROJ"Fetching data
Fetch issues first, then use metrics endpoints and dashboard.
Issues
Fetch issues from your Jira project:
smm jira fetch-issues [OPTIONS]Options
--start-date DATE: Start date in ISO 8601 format (YYYY-MM-DD)--end-date DATE: End date in ISO 8601 format (YYYY-MM-DD)--status STATUS: Filter by status (e.g., Open, In Progress, Done)--force: Force re-fetching even if data is already cached--output:textorjson
Examples
Fetch issues with a specific date range:
smm jira fetch-issues --start-date 2024-01-01 --end-date 2024-03-31Fetch issues in a specific status:
smm jira fetch-issues --status "In Progress"Changelog and comments commands
The CLI currently exposes these commands:
smm jira fetch-changelog --issue PROJ-123
smm jira fetch-comments --issue PROJ-123These two commands currently print guidance and are not full data-fetch implementations in this Node CLI.
Data Storage
Fetched Jira data is stored under your data directory and provider/repository path.
The Jira repository path follows this shape:
<store_data>/
└── <git_provider>_<owner_repo>/
└── jira/
└── issues dataLimitations
API Rate Limiting
Jira Cloud has rate limits on API requests. The Jira provider implements intelligent caching to minimize unnecessary API calls:
- Downloaded data is cached locally
- Use the
--forceflag to re-download data - Subsequent runs will skip already downloaded data
For more information about Jira API rate limits, see: https://developer.atlassian.com/cloud/jira/platform/rate-limits/
Project Access
Ensure that:
- Your API token has access to the configured project
- You have the necessary permissions in Jira to view issues, comments, and history
- The project key is correct and accessible
Continuous Integration with Git Data
Combine Jira data with GitHub/GitLab data for comprehensive metrics:
# Fetch both GitHub and Jira data
smm prs fetch
smm pipelines fetch
smm pipelines fetch-jobs
smm jira fetch-issuesTroubleshooting
Authentication Errors
If you receive authentication errors:
- Verify your Jira URL is correct
- Check that your API token is valid and not expired
- Ensure your email address is correct (used for authentication)
- Verify you have access to the specified project
Connection Errors
If you cannot connect to Jira:
- Check your internet connection
- Verify the Jira URL is accessible
- Check if your firewall/VPN allows connections to Jira
- Verify the project key is correct
No Data Returned
If no issues are returned:
- Check that the project key is correct
- Verify the date range includes issues in your project
- Check issue type and status filters are correct
- Try fetching without filters:
smm jira fetch-issues
Next Steps
Once you have fetched data from Jira, you can:
- Combine it with git and GitHub data for comprehensive analysis
- Visualize trends and patterns using dashboard and REST API
- Use
GET /jira/issuesfor service integrations