Query and list raw JIRA bug data for a specific project
Retrieves raw JIRA bug data for a project with optional component, status, and closed bug filters.
/plugin marketplace add openshift-eng/ai-helpers/plugin install component-health@ai-helpers<project> [--component comp1 comp2 ...] [--status status1 status2 ...] [--include-closed] [--limit N]component-health:list-jiras
/component-health:list-jiras <project> [--component comp1 comp2 ...] [--status status1 status2 ...] [--include-closed] [--limit N]
The component-health:list-jiras command queries JIRA bugs for a specified project and returns raw issue data. It fetches JIRA issues with all their fields and metadata without performing any summarization or aggregation.
By default, the command includes:
This command is useful for:
summarize-jiras)Verify Prerequisites: Check that Python 3 is installed
python3 --versionVerify Environment Variables: Ensure JIRA authentication is configured
Check that the following environment variables are set:
JIRA_URL: Base URL for JIRA instance (e.g., "https://issues.redhat.com")JIRA_PERSONAL_TOKEN: Your JIRA bearer token or personal access tokenVerify with:
echo "JIRA_URL: ${JIRA_URL}"
echo "JIRA_PERSONAL_TOKEN: ${JIRA_PERSONAL_TOKEN:+***set***}"
If missing, guide the user to set them:
export JIRA_URL="https://issues.redhat.com"
export JIRA_PERSONAL_TOKEN="your-token-here"
Parse Arguments: Extract project key and optional filters from arguments
--component: Space-separated list of component search strings (fuzzy match)--status: Space-separated list of status values--include-closed: Flag to include closed bugs--limit: Maximum number of issues to fetch per component (default: 1000, max: 1000)Resolve Component Names (if component filter provided): Use fuzzy matching to find actual component names
python3 plugins/component-health/skills/list-components/list_components.py --release <release>
--component:
Execute Python Script: Run the list_jiras.py script for each component
plugins/component-health/skills/list-jiras/list_jiras.pypython3 list_jiras.py --project <project> --component "<component>" [other args]Parse Output: Process the aggregated JSON response
project: Project key queriedtotal_count: Total matching issues in JIRAfetched_count: Number of issues actually fetchedquery: JQL query that was executedfilters: Applied filtersissues: Array of complete JIRA issue objects with all fieldsPresent Results: Display or store the raw JIRA data
/component-health:summarize-jiras for summary statisticsError Handling: Handle common error scenarios
The command outputs raw JIRA issue data in JSON format with the following structure:
components: List of component filters or nullstatuses: List of status filters or nullinclude_closed: Boolean indicating if closed bugs were includedlimit: Maximum number of issues fetchedkey: Issue key (e.g., "OCPBUGS-12345")fields: Object containing all issue fields:
summary: Issue title/summarystatus: Status object with name and IDpriority: Priority object with name and IDcomponents: Array of component objectsassignee: Assignee object with user detailscreated: Creation timestampupdated: Last updated timestampresolutiondate: Resolution timestamp (if closed)versions: Affects Version/s arrayfixVersions: Fix Version/s arraycustomfield_12319940: Target Version (custom field)component: The component namequery: The JQL query executed for this componenttotal_count: Total matching issues for this componentfetched_count: Number of issues fetched for this component{
"project": "OCPBUGS",
"total_count": 1500,
"fetched_count": 100,
"query": "project = OCPBUGS AND (status != Closed OR (status = Closed AND resolved >= \"2025-10-11\"))",
"filters": {
"components": null,
"statuses": null,
"include_closed": false,
"limit": 100
},
"component_queries": [
{
"component": "kube-apiserver",
"query": "project = OCPBUGS AND component = \"kube-apiserver\" AND ...",
"total_count": 800,
"fetched_count": 50
},
{
"component": "kube-controller-manager",
"query": "project = OCPBUGS AND component = \"kube-controller-manager\" AND ...",
"total_count": 700,
"fetched_count": 50
}
],
"issues": [
{
"key": "OCPBUGS-12345",
"fields": {
"summary": "Bug title here",
"status": {"name": "New", "id": "1"},
"priority": {"name": "Major", "id": "3"},
"components": [{"name": "kube-apiserver"}],
"created": "2025-11-01T10:30:00.000+0000",
...
}
},
...
],
"note": "Showing first 100 of 1500 total results. Increase --limit for more data."
}
List all open bugs for a project:
/component-health:list-jiras OCPBUGS
Fetches all open bugs in the OCPBUGS project (up to default limit of 1000) and returns raw issue data.
Filter by specific component (exact match):
/component-health:list-jiras OCPBUGS --component "kube-apiserver"
Returns raw data for bugs in the kube-apiserver component only.
Filter by fuzzy search:
/component-health:list-jiras OCPBUGS --component network
Finds all components containing "network" (case-insensitive) and returns bugs for all matches (e.g., "Networking / ovn-kubernetes", "Networking / DNS", etc.). Makes separate JIRA queries for each component and aggregates results.
Filter by multiple search strings:
/component-health:list-jiras OCPBUGS --component etcd kube-
Finds all components containing "etcd" OR "kube-" and returns combined bug data. Iterates over each component separately to avoid overly large queries.
Include closed bugs:
/component-health:list-jiras OCPBUGS --include-closed --limit 500
Returns both open and closed bugs, fetching up to 500 issues per component.
Filter by status:
/component-health:list-jiras OCPBUGS --status New "In Progress" Verified
Returns only bugs in New, In Progress, or Verified status.
Combine fuzzy search with other filters:
/component-health:list-jiras OCPBUGS --component network --status New Assigned --limit 200
Returns bugs for all networking components that are in New or Assigned status.
$1 (required): JIRA project key
$2+ (optional): Filter flags
--component <search1> [search2 ...]: Filter by component names using fuzzy search
--status <status1> [status2 ...]: Filter by status values
New, "In Progress", Verified, Modified, ON_QA--include-closed: Include closed bugs in results
--limit <N>: Maximum number of issues to fetch per component
Python 3: Required to run the data fetching script
which python3JIRA Authentication: Environment variables must be configured
JIRA_URL: Your JIRA instance URLJIRA_PERSONAL_TOKEN: Your JIRA bearer token or personal access tokenHow to get a JIRA token:
Network Access: Must be able to reach your JIRA instance
/component-health:summarize-jiras insteadplugins/component-health/skills/list-jiras/SKILL.mdplugins/component-health/skills/list-jiras/list_jiras.py/component-health:summarize-jiras (for summary statistics)/component-health:analyze