SuperAPI AI Directory

jira-tool

General & other

View repository

Updated 10-17 10:04

About this skill

[Historical author source dated 2026-04-01 (UTC). The checked current repository snapshot 9dccb2d0dc06 no longer contains this file path. Current installation and compatibility are unverified.]

Source: https://raw.githubusercontent.com/dmmulroy/.dotfiles/fd77a091d404f9ebfc50bcf4afb568f9cf72a9ad/home/.config/opencode/skill/jira-tool/SKILL.md

Jira Tool

CLI for Jira operations via Cloudflare Access authentication.

Quick Reference

Task Command
Create ticket scripts/jira-tool.sh create -p PROJECT -s "Summary" [-t Type] [-d "Desc"] [-l labels]
Get ticket scripts/jira-tool.sh get ISSUE-KEY
Update ticket scripts/jira-tool.sh update ISSUE-KEY [-s "Summary"] [-d "Desc"] [-a user]
Add comment scripts/jira-tool.sh comment ISSUE-KEY "Comment body"
Transition scripts/jira-tool.sh transition ISSUE-KEY [STATUS]
Close ticket scripts/jira-tool.sh close ISSUE-KEY
Assign scripts/jira-tool.sh assign ISSUE-KEY [username]
Search scripts/jira-tool.sh search "JQL query" [max]
Auth status scripts/jira-tool.sh status

Authentication

Auth is automatic via cloudflared. On first use or token expiry:

  • Browser opens for Cloudflare Access login
  • Token valid 24h

Check status: scripts/jira-tool.sh status

Commands

Create

scripts/jira-tool.sh create \
  -p PROJECT \
  -s "Fix authentication bug" \
  -t Bug \
  -d "Detailed description" \
  -l "urgent,backend" \
  --priority High \
  -a username

Required: -p (project), -s (summary) Optional: -t (type, default: Task), -d (description), -l (labels), --priority, -a (assignee), --parent (for Sub-task), --epic (link to epic)

Sub-tasks

# Create a sub-task under an existing issue
scripts/jira-tool.sh create -p PROJ -s "Subtask summary" -t Sub-task --parent PROJ-123

Link to Epic

# Create task linked to an epic
scripts/jira-tool.sh create -p PROJ -s "Task summary" --epic PROJ-100

Note: Assignee uses Jira username (not email). Find via search on existing tickets.

Get

scripts/jira-tool.sh get PROJ-123

Returns JSON with summary, status, assignee, priority, description, labels.

Update

scripts/jira-tool.sh update PROJ-123 -s "New summary" -d "New desc" -a newuser

Comment

scripts/jira-tool.sh comment PROJ-123 "Fixed in commit abc123"

Transition

List available transitions:

scripts/jira-tool.sh transition PROJ-123

Transition to status:

scripts/jira-tool.sh transition PROJ-123 "In Progress"

Close

Tries common close statuses (Done, Closed, Resolved, Complete):

scripts/jira-tool.sh close PROJ-123

Assign

scripts/jira-tool.sh assign PROJ-123 username   # assign
scripts/jira-tool.sh assign PROJ-123 -1         # unassign

Search

scripts/jira-tool.sh search "project = DEVTOOLS AND status = Open" 50

Delete

scripts/jira-tool.sh delete PROJ-123

Common JQL Queries

Query JQL
My open tickets assignee = currentUser() AND status != Done
Project backlog project = PROJ AND status = "To Do"
Recently updated project = PROJ AND updated >= -7d
High priority priority in (High, Highest) AND status != Done

Output

Most commands return JSON. Parse with jq:

scripts/jira-tool.sh get PROJ-123 | jq '.fields.status.name'
scripts/jira-tool.sh search "assignee = currentUser()" | jq '.issues[].key'

Typical Workflow

# Create and start work
scripts/jira-tool.sh create -p PROJ -s "Implement feature X" -t Task
scripts/jira-tool.sh transition PROJ-456 "In Progress"

# Update progress
scripts/jira-tool.sh comment PROJ-456 "Initial implementation done"

# Complete
scripts/jira-tool.sh close PROJ-456