Install
$ agentstack add skill-opendatahub-io-docs-skills-jira-reader ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
JIRA Reader Skill
This skill provides read-only access to JIRA issues on Red Hat Issue Tracker (https://redhat.atlassian.net). It uses the Atlassian REST API v3, which returns rich text fields (description, comments) in Atlassian Document Format (ADF). The skill automatically converts ADF to plain text.
Prerequisites
The script requires Python packages jira and ratelimit:
python3 -m pip install jira ratelimit
Capabilities
- Fetch Issue Details: Get full issue information including description, status, priority, assignee, components
- Process Comments: Extract and analyze comment threads with anonymized participants
- Extract Custom Fields: Access release note types, fix versions, and other custom fields
- Find Git Links: Retrieve related GitHub/GitLab pull requests and commits
- Categorize Issues: Classify issues as bugs, CVEs, features, stories, epics, tasks
- Generate Summaries: Create categorized reports and analysis of multiple issues
- Ticket Graph Traversal: Map relationships — parent, children, siblings, issue links, web links
Usage
The skill uses a Python script that connects to JIRA using an authentication token.
Environment Variables Required
Set in ~/.env (global) or .env in the project root (local override). See docs-skills README for setup:
JIRA_API_TOKEN=your-jira-api-token
JIRA_EMAIL=you@redhat.com # required for Atlassian Cloud
JIRA_URL=https://redhat.atlassian.net # optional, defaults to redhat.atlassian.net
The script loads .env files automatically — do not prepend source ~/.env to bash commands.
Examples
Fetch a single issue:
uv run --script ${CLAUDE_SKILL_DIR}/scripts/jira_reader.py --issue INFERENG-5233
Fetch issue with comments:
uv run --script ${CLAUDE_SKILL_DIR}/scripts/jira_reader.py --issue INFERENG-5233 --include-comments
Fetch multiple issues:
uv run --script ${CLAUDE_SKILL_DIR}/scripts/jira_reader.py --issue INFERENG-5233 --issue INFERENG-5049
Search issues by JQL (FAST - returns summaries):
uv run --script ${CLAUDE_SKILL_DIR}/scripts/jira_reader.py --jql "project=INFERENG AND status='In Progress'"
Search with full details (SLOW - fetches all fields):
uv run --script ${CLAUDE_SKILL_DIR}/scripts/jira_reader.py --jql "project=INFERENG AND status='In Progress'" --fetch-details
Traverse the ticket graph:
uv run --script ${CLAUDE_SKILL_DIR}/scripts/jira_reader.py --graph INFERENG-5233
Graph with custom limits:
uv run --script ${CLAUDE_SKILL_DIR}/scripts/jira_reader.py --graph INFERENG-5233 --max-children 10 --max-siblings 10 --max-links 20
Performance Modes
Default: Fast Summary Mode
JQL searches return summaries by default (1 API call, ~3 seconds for any number of results):
- issuekey, issuetype, issue_category, priority, status
- assignee, summary, fix_versions, url
Use for: Quick analysis, categorization, release planning, CVE reports
Opt-in: Detailed Mode (--fetch-details)
Fetches full details for each issue (N+1 API calls, ~2.5 seconds per issue):
- Everything in summary mode PLUS
- Full description, comments, git_links, created/updated dates, all custom fields
Use for: Deep analysis, comment threads, Git link extraction
Graph Mode (--graph)
Traverses ticket relationships:
- Ancestor chain — walks the parent chain (up to 2 levels by default) via standard parent field + Parent Link custom field. This means a task under an Epic under a Feature will return both the Epic and the Feature
- Children (via parent and Epic Link JQL queries, 1 level deep)
- Siblings (active statuses under same parent, 1 level deep)
- Issue links (blocks, clones, relates to)
- Remote/web links (classified as PRs, Google Docs, or other)
Use for: Understanding ticket context, documentation workflows, relationship mapping
Output Formats
Summary output (default for JQL):
{
"issue_key": "INFERENG-5233",
"issue_type": "Task",
"issue_category": "Task",
"priority": "Undefined",
"status": "New",
"assignee": null,
"summary": "Issue summary text",
"fix_versions": [],
"url": "https://redhat.atlassian.net/browse/INFERENG-5233"
}
Detailed output (with --fetch-details or --issue):
{
"issue_key": "INFERENG-5233",
"issue_type": "Task",
"issue_category": "Task",
"priority": "Undefined",
"status": "New",
"assignee": null,
"summary": "Issue summary text",
"description": "Full issue description...",
"created": "2026-03-16T08:34:09.302+0000",
"updated": "2026-03-16T09:03:46.166+0000",
"comments": [
{
"participant": "Participant A",
"timestamp": "2026-03-16 08:34",
"body": "Comment text..."
}
],
"custom_fields": {
"release_note_type": "Bug Fix",
"fix_versions": ["3.4"]
},
"git_links": [
"https://github.com/org/repo/pull/123"
],
"url": "https://redhat.atlassian.net/browse/INFERENG-5233"
}
Graph output (with --graph):
{
"ticket": "INFERENG-5233",
"jira_url": "https://redhat.atlassian.net",
"parent": {"key": "INFERENG-5049", "summary": "...", "status": "New", "issuetype": "Epic"},
"ancestors": [
{"key": "INFERENG-5049", "summary": "...", "status": "New", "issuetype": "Epic", "priority": "Medium", "assignee": null, "description": "...", "source": "parent_field"},
{"key": "INFERENG-5000", "summary": "...", "status": "In Progress", "issuetype": "Feature", "priority": "High", "assignee": "John Doe", "description": "...", "source": "parent_link_custom_field"}
],
"children": {"total": 0, "showing": 0, "skipped": 0, "issues": []},
"siblings": {"total": 0, "showing": 0, "skipped": 0, "issues": []},
"issue_links": {"total": 1, "showing": 1, "skipped": 0, "links": [...]},
"web_links": {"total": 1, "links": [...]},
"auto_discovered_urls": {"pull_requests": [...], "google_docs": []},
"errors": []
}
Rate Limiting
The skill respects JIRA API rate limits (2 calls per 5 seconds) to avoid overwhelming the server. Summary mode requires only 1 call regardless of result count, making it ~80x faster for bulk operations.
Security
- Read-only operations only (enforced by allowed-tools)
- Token stored in environment variable (not in code)
- Comment anonymization to protect user identities in analysis
Common Use Cases
- Analyze release issues: Fetch all issues for a fix version and categorize them
- CVE reporting: Extract security vulnerabilities and their status
- Bug triage: Get issue details with comments for understanding context
- Release notes: Extract information needed for documentation
- Link analysis: Find related Git changes for code review
- Ticket graph: Map relationships for documentation workflow context
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: opendatahub-io
- Source: opendatahub-io/docs-skills
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.