Search Command

Search for JIRA tickets by key, summary, or JQL query.

Basic Usage

jira-ticket-creator search --key PROJ-123
jira-ticket-creator search --summary "login"
jira-ticket-creator search --jql "project = PROJ AND status = 'To Do'"

Flags

Flag Type Description Example
--key string Search by ticket key --key PROJ-123
--summary string Search by summary (partial match) --summary "authentication"
--jql string Search using JQL query --jql "project = PROJ"
--format string Output format: table, json --format json

Examples

Search by Key

# Find a specific ticket
jira-ticket-creator search --key PROJ-123

Output:

KEY TYPE SUMMARY STATUS
--- ---- ------- ------
PROJ-123 Story Implement OAuth In Progress

Search by Summary (Partial Match)

# Find tickets mentioning "authentication"
jira-ticket-creator search --summary "authentication"

# Find tickets mentioning "database"
jira-ticket-creator search --summary "database"

# Find tickets mentioning "api"
jira-ticket-creator search --summary "api"

JQL Queries

Status-Based

# Find all to-do items
jira-ticket-creator search --jql "status = 'To Do'"

# Find in-progress items
jira-ticket-creator search --jql "status = 'In Progress'"

# Find completed items
jira-ticket-creator search --jql "status in (Done, Closed)"

# Find items not done
jira-ticket-creator search --jql "status != Done"

Project-Based

# Find all tickets in PROJ
jira-ticket-creator search --jql "project = PROJ"

# Find tickets in multiple projects
jira-ticket-creator search --jql "project in (PROJ, BACKEND, API)"

# Find all tickets not in PROJ
jira-ticket-creator search --jql "project != PROJ"

Type-Based

# Find all bugs
jira-ticket-creator search --jql "type = Bug"

# Find stories and tasks
jira-ticket-creator search --jql "type in (Story, Task)"

# Find everything except bugs
jira-ticket-creator search --jql "type != Bug"

Priority-Based

# Find critical items
jira-ticket-creator search --jql "priority = Critical"

# Find high and critical
jira-ticket-creator search --jql "priority >= High"

# Find non-critical
jira-ticket-creator search --jql "priority < Critical"

# Find items with specific priority
jira-ticket-creator search --jql "priority in (Critical, High)"

Assignee-Based

# Find tickets assigned to john
jira-ticket-creator search --jql "assignee = john"

# Find tickets assigned to specific people
jira-ticket-creator search --jql "assignee in (john, jane, bob)"

# Find unassigned tickets
jira-ticket-creator search --jql "assignee is EMPTY"

# Find assigned tickets
jira-ticket-creator search --jql "assignee is not EMPTY"

# Find tickets assigned to current user
jira-ticket-creator search --jql "assignee = currentUser()"

Date-Based

# Find tickets created in last 7 days
jira-ticket-creator search --jql "created >= -7d"

# Find tickets updated in last 24 hours
jira-ticket-creator search --jql "updated >= -1d"

# Find tickets created last month
jira-ticket-creator search --jql "created >= -30d"

# Find tickets due soon
jira-ticket-creator search --jql "duedate <= 3d"

# Find overdue tickets
jira-ticket-creator search --jql "duedate < now()"

Complex Queries

Combination Filters

# High priority bugs created recently
jira-ticket-creator search --jql "type = Bug AND priority = High AND created >= -7d"

# In-progress stories in PROJ
jira-ticket-creator search --jql "project = PROJ AND type = Story AND status = 'In Progress'"

# Critical issues not assigned
jira-ticket-creator search --jql "priority = Critical AND assignee is EMPTY"

# Backend work for john
jira-ticket-creator search --jql "project = BACKEND AND assignee = john AND status != Done"

# Ready for review
jira-ticket-creator search --jql "status = 'Review Ready' OR labels = ready-review"

Using AND/OR

# Multiple assignees OR creators
jira-ticket-creator search --jql "(assignee = john OR assignee = jane) AND status != Done"

# Multiple projects with high priority
jira-ticket-creator search --jql "(project = PROJ OR project = BACKEND) AND priority >= High"

# Complex logic
jira-ticket-creator search --jql "(type = Bug AND priority = Critical) OR (status = 'Blocked')"
# Find tickets mentioning OAuth in summary or description
jira-ticket-creator search --jql "text ~ 'OAuth'"

# Exact phrase search
jira-ticket-creator search --jql "text ~ '\"OAuth 2.0\"'"

# Multiple terms
jira-ticket-creator search --jql "summary ~ 'database' OR description ~ 'database'"

Format Examples

Table Format (default)

jira-ticket-creator search --jql "project = PROJ" --format table

Output:

KEY TYPE SUMMARY STATUS
--- ---- ------- ------
PROJ-100 Story Implement OAuth In Progress
PROJ-101 Task Write documentation To Do
PROJ-102 Bug Fix login issue To Do
PROJ-103 Story Add dark mode Done

JSON Format

jira-ticket-creator search --jql "project = PROJ" --format json

Output:

[
 {
 "key": "PROJ-100",
 "fields": {
 "summary": "Implement OAuth",
 "issuetype": {"name": "Story"},
 "status": {"name": "In Progress"},
 "priority": {"name": "High"},
 "assignee": {"name": "john"}
 }
 }
]

Real-World Workflows

Daily Standup

#!/bin/bash
# daily-standup.sh

echo "=== MY WORK (ASSIGNED TO ME) ==="
jira-ticket-creator search --jql "assignee = currentUser() AND status != Done"

echo ""
echo "=== CREATED BY ME (IN PROGRESS) ==="
jira-ticket-creator search --jql "creator = currentUser() AND status = 'In Progress'"

echo ""
echo "=== HIGH PRIORITY ISSUES ==="
jira-ticket-creator search --jql "priority = Critical AND status != Done"

Sprint Planning

#!/bin/bash
# Get sprint candidates

echo "=== READY FOR SPRINT ==="
jira-ticket-creator search --jql "status = 'Ready for Sprint' OR labels = ready-sprint"

echo ""
echo "=== TECH DEBT ==="
jira-ticket-creator search --jql "labels = tech-debt AND status != Done"

echo ""
echo "=== BUG FIXES ==="
jira-ticket-creator search --jql "type = Bug AND status = 'To Do' AND priority >= High"

Issue Triage

#!/bin/bash
# Find items needing triage

echo "=== UNASSIGNED HIGH PRIORITY ==="
jira-ticket-creator search --jql "assignee is EMPTY AND priority >= High"

echo ""
echo "=== UNASSIGNED BUGS ==="
jira-ticket-creator search --jql "type = Bug AND assignee is EMPTY"

echo ""
echo "=== BLOCKED ITEMS ==="
jira-ticket-creator search --jql "status = Blocked"

Monitoring

#!/bin/bash
# Monitor critical work

# Watch for new critical issues (every 5 minutes)
watch -n 300 'jira-ticket-creator search --jql "priority = Critical AND created >= -1d"'

# Check for overdue items daily
0 9 * * * jira-ticket-creator search --jql "duedate < now()" > ~/critical-overdue.txt

Search Tips

1. Save Searches as Aliases

# Add to ~/.bashrc or ~/.zshrc
alias my-work='jira-ticket-creator search --jql "assignee = currentUser()"'
alias in-progress='jira-ticket-creator search --jql "status = \"In Progress\""'
alias my-backlog='jira-ticket-creator search --jql "assignee = currentUser() AND status = \"To Do\""'
alias critical='jira-ticket-creator search --jql "priority = Critical"'

# Use them
my-work
critical
in-progress

2. Pipe to Other Tools

# Count tickets
jira-ticket-creator search --jql "project = PROJ" --format table | wc -l

# Filter results
jira-ticket-creator search --jql "project = PROJ" | grep "High"

# Export to CSV
jira-ticket-creator search --jql "project = PROJ" --format json | jq -r '.[] | [.key, .fields.summary] | @csv'

3. Monitor Changes

# Watch for changes (update every 60 seconds)
watch 'jira-ticket-creator search --jql "status = \"In Progress\""'

# Or in tmux
tmux new-session -d -s jira 'watch -n 60 "jira-ticket-creator search --jql \"status = In Progress\""'

4. Create Smart Dashboards

#!/bin/bash
# dashboard.sh - Monitor key metrics

while true; do
 clear
 echo "=== JIRA DASHBOARD ==="
 echo "Last updated: $(date)"
 echo ""

 echo "My Work ($(jira-ticket-creator search --jql 'assignee = currentUser() AND status != Done' | wc -l) items)"
 jira-ticket-creator search --jql "assignee = currentUser() AND status != Done"

 echo ""
 echo "Critical Issues ($(jira-ticket-creator search --jql 'priority = Critical' | wc -l) items)"
 jira-ticket-creator search --jql "priority = Critical"

 sleep 300 # Update every 5 minutes
done

Common JQL Functions

Function Description Example
currentUser() Current logged-in user assignee = currentUser()
now() Current date/time duedate < now()
startOfDay() Start of today created >= startOfDay()
endOfDay() End of today created <= endOfDay()

See Also


Copyright © 2024 Clinton Steiner. Licensed under MIT.

This site uses Just the Docs, a documentation theme for Jekyll.