Skip to content

Issue Triage

Efficiently triage and manage incoming issues.

Use Case

Your team receives many issues. You need to:

  • Review unassigned issues
  • Set priorities
  • Assign to team members
  • Add labels for categorization

Triage Script

#!/bin/bash
# triage.sh - Interactive issue triage
# Usage: ./triage.sh <project>

PROJECT=$1

echo "Fetching unassigned issues..."
ISSUES=$(atlcli jira search --project $PROJECT --jql "assignee is EMPTY AND status = Open" --json)

echo "$ISSUES" | jq -r '.issues[] | "\(.key): \(.fields.summary)"'

echo ""
echo "Enter issue key to triage (or 'q' to quit):"

while read -r KEY; do
  [ "$KEY" = "q" ] && break

  echo ""
  atlcli jira get $KEY

  echo ""
  echo "Actions: [a]ssign, [p]riority, [l]abel, [t]ransition, [s]kip"
  read -r ACTION

  case $ACTION in
    a)
      echo "Enter assignee email:"
      read -r ASSIGNEE
      atlcli jira update $KEY --assignee "$ASSIGNEE"
      ;;
    p)
      echo "Priority (Highest, High, Medium, Low, Lowest):"
      read -r PRIORITY
      atlcli jira update $KEY --priority "$PRIORITY"
      ;;
    l)
      echo "Labels (comma-separated):"
      read -r LABELS
      atlcli jira update $KEY --labels "$LABELS"
      ;;
    t)
      echo "Available transitions:"
      atlcli jira transition $KEY --list
      echo "Enter status:"
      read -r STATUS
      atlcli jira transition $KEY --status "$STATUS"
      ;;
  esac

  echo ""
  echo "Next issue (or 'q' to quit):"
done

Bulk Triage

For large batches, use bulk operations:

Label by Type

# Label all bugs
atlcli jira bulk label --jql "project = PROJ AND type = Bug AND labels is EMPTY" --add bug

# Label all stories
atlcli jira bulk label --jql "project = PROJ AND type = Story AND labels is EMPTY" --add feature

Set Default Priority

# Set medium priority for unlabeled issues
atlcli jira bulk edit --jql "project = PROJ AND priority is EMPTY" --set-priority Medium

Auto-assign by Component

#!/bin/bash
# auto-assign.sh - Assign issues by component

# Backend issues to Alice
atlcli jira bulk edit \
  --jql "project = PROJ AND component = Backend AND assignee is EMPTY" \
  --set-assignee alice@company.com

# Frontend issues to Bob
atlcli jira bulk edit \
  --jql "project = PROJ AND component = Frontend AND assignee is EMPTY" \
  --set-assignee bob@company.com

Scheduled Triage

Run triage automatically:

#!/bin/bash
# daily-triage.sh - Run by cron daily

# Move stale issues
atlcli jira bulk transition \
  --jql "project = PROJ AND status = Open AND updated < -30d" \
  --status "Needs Review"

# Notify about high-priority unassigned
COUNT=$(atlcli jira search \
  --jql "project = PROJ AND priority in (Highest, High) AND assignee is EMPTY" \
  --json | jq '.total')

if [ "$COUNT" -gt 0 ]; then
  echo "$COUNT high-priority issues need assignment" | \
    mail -s "Jira Triage Alert" team@company.com
fi

Tips

  • Use JQL filters to focus triage
  • Create saved filters for common queries
  • Set up notifications for high-priority items
  • Review triage metrics periodically