Loading...
Loading...
Search and manage Jira issues using JQL queries, create/update issues, and manage workflows. Use when working with Jira project management.
npx skill4agent add odyssey4me/agent-skills jirapip install --user requests keyring pyyamlpython scripts/jira.py checkexport JIRA_BASE_URL="https://yourcompany.atlassian.net"
export JIRA_EMAIL="you@example.com"
export JIRA_API_TOKEN="your-token"~/.bashrc~/.zshrc~/.config/agent-skills/jira.yamlurl: https://yourcompany.atlassian.net
email: you@example.com
token: your-tokenhttps://yourcompany.atlassian.netRetry-After--max-results--max-results~/.config/agent-skills/jira.yaml# Authentication (optional if using environment variables)
url: https://yourcompany.atlassian.net
email: you@example.com
token: your-token
# Optional defaults
defaults:
jql_scope: "project = DEMO AND assignee = currentUser()"
security_level: "Red Hat Internal"
max_results: 25
fields: ["summary", "status", "assignee", "priority", "created"]
# Optional project-specific defaults
projects:
DEMO:
issue_type: "Task"
priority: "Medium"
PROD:
issue_type: "Bug"
priority: "High"(scope) AND (your_query)# Show all configuration
python scripts/jira.py config show
# Show project-specific defaults
python scripts/jira.py config show --project DEMOpython scripts/jira.py check# Standard JQL
python scripts/jira.py search "project = DEMO AND status = Open"
python scripts/jira.py search "assignee = currentUser() ORDER BY updated DESC" --max-results 20
# ScriptRunner Enhanced Search (if available)
# Find issues linked to a specific issue
python scripts/jira.py search 'issue in linkedIssuesOf("DEMO-123")'
# Find parent/child relationships
python scripts/jira.py search 'issue in parentsOf("DEMO-123")'
python scripts/jira.py search 'issue in subtasksOf("DEMO-123")'
# Find issues commented on by a specific user
python scripts/jira.py search 'issue in commentedByUser("username")'
# Find epics and their issues
python scripts/jira.py search 'issue in epicsOf("DEMO-123")'
python scripts/jira.py search 'issue in issuesInEpics("EPIC-123")'
# Find issues with specific link types (dependencies, blocks, etc.)
python scripts/jira.py search 'issue in hasLinkType("Dependency")'jql--max-results--fields--jsonlinkedIssuesOf()hasLinkType()subtasksOf()parentsOf()epicsOf()commentedByUser()transitionedBy()# Get issue details
python scripts/jira.py issue get DEMO-123
# Get issue with specific fields only
python scripts/jira.py issue get DEMO-123 --fields "summary,status,assignee"
# Create new issue
python scripts/jira.py issue create --project DEMO --type Task --summary "New task"
# Update issue
python scripts/jira.py issue update DEMO-123 --summary "Updated summary"
# Add comment
python scripts/jira.py issue comment DEMO-123 "This is a comment"
# Add private comment with security level
python scripts/jira.py issue comment DEMO-123 "Internal note" --security-level "Red Hat Internal"issue getissue_key--fields--json# List available transitions
python scripts/jira.py transitions list DEMO-123
# Transition issue
python scripts/jira.py transitions do DEMO-123 "In Progress"
python scripts/jira.py transitions do DEMO-123 "Done" --comment "Completed"
# Transition with private comment
python scripts/jira.py transitions do DEMO-123 "Done" --comment "Internal resolution notes" --security-level "Red Hat Internal"# Show all configuration and defaults
python scripts/jira.py config show
# Show project-specific defaults
python scripts/jira.py config show --project DEMO# List all global fields
python scripts/jira.py fields
# List fields for specific project and issue type
python scripts/jira.py fields --project DEMO --issue-type Task
# Output as JSON
python scripts/jira.py fields --json--project--issue-type--json--project--issue-type# List all statuses
python scripts/jira.py statuses
# List status categories (To Do, In Progress, Done)
python scripts/jira.py statuses --categories
# Output as JSON
python scripts/jira.py statuses --json--categories--jsonstatusCategorystatusCategory = "To Do"statusCategory = "In Progress"statusCategory = Donepython scripts/jira.py checkpython scripts/jira.py search "assignee = currentUser() AND status != Done ORDER BY priority DESC"python scripts/jira.py issue create \
--project DEMO \
--type Bug \
--summary "Login button not working" \
--description "The login button on the homepage does not respond to clicks."# Start work on an issue
python scripts/jira.py transitions do DEMO-123 "In Progress"
# Complete the issue
python scripts/jira.py transitions do DEMO-123 "Done" --comment "Implemented and tested"# Add comment visible only to specific security level
python scripts/jira.py issue comment DEMO-123 \
"This is sensitive internal information" \
--security-level "Red Hat Internal"python scripts/jira.py search \
"project = DEMO AND created >= -7d" \
--fields "key,summary,status,assignee,created"# Search uses JQL scope automatically
python scripts/jira.py search "status = Open"
# Becomes: (project = DEMO AND assignee = currentUser()) AND (status = Open)
# Search with automatic max_results and fields from config
python scripts/jira.py search "priority = High"
# Uses configured max_results (25) and fields automatically
# Create issue uses project defaults
python scripts/jira.py issue create --project DEMO --summary "Fix login bug"
# Automatically uses issue_type="Task" and priority="Medium" from DEMO project defaults
# Comments use default security level
python scripts/jira.py issue comment DEMO-123 "Internal note"
# Automatically applies security_level="Red Hat Internal"
# Override defaults when needed
python scripts/jira.py search "status = Open" --max-results 100
# CLI argument overrides the configured default of 25| Query | Description |
|---|---|
| Issues in DEMO project |
| Issues assigned to you |
| Issues in progress |
| Created in last 7 days |
| Updated today |
| High priority issues |
| Issues with "bug" label |
ANDORORDER BYstatusCategory| Category | Meaning | Example Statuses |
|---|---|---|
| To Do | Not started | Open, Backlog, New |
| In Progress | Being worked on | In Development, In Review |
| Done | Completed | Closed, Resolved, Done |
status = "Open" OR status = "Backlog"statusCategory = "To Do"python scripts/jira.py statuses --categoriespython scripts/jira.py checkpip install --user requests keyring pyyaml