From ci
Fetches JIRA issue details including status, assignee, comments, linked PRs, and progress classification (ACTIVE/STALLED/NEEDS_ATTENTION). Useful for regression triage and bug tracking.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ci:fetch-jira-issueThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill fetches detailed information about a JIRA issue from the Red Hat JIRA REST API. It retrieves status, assignee, priority, resolution, comments, linked PRs, and classifies the issue's progress as ACTIVE, STALLED, or NEEDS_ATTENTION.
This skill fetches detailed information about a JIRA issue from the Red Hat JIRA REST API. It retrieves status, assignee, priority, resolution, comments, linked PRs, and classifies the issue's progress as ACTIVE, STALLED, or NEEDS_ATTENTION.
Use this skill when you need to:
JIRA API Token: Required for authentication
export JIRA_API_TOKEN="your-token"export JIRA_USERNAME="your-atlassian-email"--token TOKEN and --username USERNAME on the command lineNetwork Access: Must be able to reach redhat.atlassian.net
curl -s -o /dev/null -w '%{http_code}' https://redhat.atlassian.netPython 3: Python 3.6 or later
python3 --version# Path to the Python script
script_path="plugins/ci/skills/fetch-jira-issue/fetch_jira_issue.py"
# Fetch issue data in JSON format (default)
python3 "$script_path" OCPBUGS-74401 --format json
# Or fetch as human-readable summary
python3 "$script_path" OCPBUGS-74401 --format summary
# Pass token explicitly instead of using JIRA_API_TOKEN env var
python3 "$script_path" OCPBUGS-74401 --token "your-token" --format json
The script outputs structured JSON data that can be further processed:
# Store result in variable
jira_data=$(python3 "$script_path" OCPBUGS-74401 --format json)
# Extract key fields
status=$(echo "$jira_data" | jq -r '.status')
assignee=$(echo "$jira_data" | jq -r '.assignee.display_name // "Unassigned"')
progress_level=$(echo "$jira_data" | jq -r '.progress.level')
progress_reason=$(echo "$jira_data" | jq -r '.progress.reason')
# Check progress classification
echo "Status: $status"
echo "Assignee: $assignee"
echo "Progress: $progress_level - $progress_reason"
The skill automatically classifies issue progress:
# Example: Check if a triaged regression's bug needs attention
progress_level=$(echo "$jira_data" | jq -r '.progress.level')
case "$progress_level" in
"ACTIVE")
echo "Bug is being worked on - no action needed"
;;
"STALLED")
echo "Bug may need attention - consider commenting or reassigning"
;;
"NEEDS_ATTENTION")
echo "Bug needs someone to pick it up"
;;
"RESOLVED")
echo "Bug is closed"
;;
esac
The script exits with code 1 and prints errors to stderr for these cases:
JIRA_API_TOKEN not set and --token not provided# Example: Handle missing token gracefully
if [ -z "$JIRA_API_TOKEN" ] || [ -z "$JIRA_USERNAME" ]; then
echo "Warning: JIRA_API_TOKEN or JIRA_USERNAME not set. Skipping JIRA analysis."
else
jira_data=$(python3 "$script_path" "$jira_key" --format json 2>/dev/null)
if [ $? -ne 0 ]; then
echo "Warning: Failed to fetch JIRA issue. Continuing without JIRA data."
fi
fi
{
"key": "OCPBUGS-74401",
"url": "https://redhat.atlassian.net/browse/OCPBUGS-74401",
"summary": "ovn-ipsec-host creates duplicate openssl attribute",
"status": "Modified",
"resolution": null,
"priority": "Critical",
"assignee": {
"display_name": "Jane Developer",
"email": "[email protected]"
},
"reporter": {
"display_name": "John Reporter",
"email": "[email protected]"
},
"components": ["Networking / cluster-network-operator"],
"labels": ["Regression"],
"fix_versions": ["4.22"],
"created": "2026-01-20T14:30:00.000+0000",
"updated": "2026-02-10T09:15:00.000+0000",
"comment_count": 5,
"comments": [
{
"author": "Jane Developer",
"created": "2026-02-08T10:00:00.000+0000",
"body": "PR submitted: https://github.com/openshift/ovn-kubernetes/pull/1234"
}
],
"linked_prs": [
"https://github.com/openshift/ovn-kubernetes/pull/1234"
],
"progress": {
"level": "ACTIVE",
"label": "ACTIVE",
"reason": "PR in progress (1 linked)",
"days_since_update": 2,
"days_since_last_comment": 4
}
}
JIRA Issue: OCPBUGS-74401
============================================================
Summary: ovn-ipsec-host creates duplicate openssl attribute
URL: https://redhat.atlassian.net/browse/OCPBUGS-74401
Status: Modified
Priority: Critical
Assignee: Jane Developer
Reporter: John Reporter
Components: Networking / cluster-network-operator
Labels: Regression
Fix Versions: 4.22
Created: 2026-01-20
Updated: 2026-02-10
Progress: ACTIVE - PR in progress (1 linked)
Days since update: 2
Days since last comment: 4
Linked PRs (1):
- https://github.com/openshift/ovn-kubernetes/pull/1234
Recent Comments (1 of 5 total):
[2026-02-08] Jane Developer:
PR submitted: https://github.com/openshift/ovn-kubernetes/pull/1234
--token flag takes precedence over the JIRA_API_TOKEN environment variable/ci:analyze-regression - Uses this skill to check JIRA progress on triaged regressions/ci:check-if-jira-regression-is-ongoing - Uses this skill for JIRA bug analysisfetch-regression-details - Fetches regression data that may link to JIRA bugstriage-regression - Creates triage records linking regressions to JIRA bugsnpx claudepluginhub bradmwilliams/ai-helpers --plugin ciFetches JIRA issue details including status, assignee, comments, linked PRs, and progress classification (ACTIVE/STALLED/NEEDS_ATTENTION). Useful for regression triage and bug tracking.
Queries JIRA REST API to fetch raw bug data for projects, including all fields and metadata. Supports filters by component, status, and closed issues for custom analysis.
Fetches and renders a Jira issue by key with description, status, comments, and transitions. Useful for looking up issues referenced in conversation.