From ci
Fetch JIRA issue details including status, assignee, comments, and progress classification
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_TOKEN="your-token"--token TOKEN on the command lineNetwork Access: Must be able to reach issues.redhat.com
curl -s -o /dev/null -w '%{http_code}' https://issues.redhat.comPython 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_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_TOKEN not set and --token not provided# Example: Handle missing token gracefully
if [ -z "$JIRA_TOKEN" ]; then
echo "Warning: JIRA_TOKEN 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://issues.redhat.com/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://issues.redhat.com/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_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 bugsCreates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
npx claudepluginhub anirudhagniredhat/openshift-ai-helpers --plugin ci