Agent Skill
2/7/2026

jira-bulk-operations

Bulk operations for multiple issues at scale. TRIGGERS: 'bulk update', 'bulk close', 'bulk transition', 'bulk assign', 'transition N issues' (N >= 10), 'update all bugs', 'close 50 issues', 'mass transition', 'update multiple issues', quantities like '50 issues', '100 bugs', '20+ tickets'. Use for operations on 10+ issues. NOT FOR: single issue transitions (use jira-lifecycle), searching only without modifications (use jira-search), single issue field updates (use jira-issue).

G
grandcamel
3GitHub Stars
1Views
npx skills add grandcamel/JIRA-Assistant-Skills

SKILL.md

Namejira-bulk-operations
DescriptionBulk operations for multiple issues at scale. TRIGGERS: 'bulk update', 'bulk close', 'bulk transition', 'bulk assign', 'transition N issues' (N >= 10), 'update all bugs', 'close 50 issues', 'mass transition', 'update multiple issues', quantities like '50 issues', '100 bugs', '20+ tickets'. Use for operations on 10+ issues. NOT FOR: single issue transitions (use jira-lifecycle), searching only without modifications (use jira-search), single issue field updates (use jira-issue).

name: "jira-bulk-operations" description: "Bulk operations for multiple issues at scale. TRIGGERS: 'bulk update', 'bulk close', 'bulk transition', 'bulk assign', 'transition N issues' (N >= 10), 'update all bugs', 'close 50 issues', 'mass transition', 'update multiple issues', quantities like '50 issues', '100 bugs', '20+ tickets'. Use for operations on 10+ issues. NOT FOR: single issue transitions (use jira-lifecycle), searching only without modifications (use jira-search), single issue field updates (use jira-issue)." version: "1.0.0" author: "jira-assistant-skills" license: "MIT" allowed-tools: ["Bash", "Read", "Glob", "Grep"]

jira-bulk

Bulk operations for JIRA issue management at scale - transitions, assignments, priorities, cloning, and deletion.

Risk Levels

OperationRiskNotes
Dry-run any operation-Preview only, no changes
Bulk transition!!Affects many issues; use --dry-run first
Bulk assign!!Affects many issues; use --dry-run first
Bulk set-priority!!Affects many issues; use --dry-run first
Bulk clone!Creates many issues; can delete
Bulk delete!!!IRREVERSIBLE - issues permanently lost

Risk Legend: - Safe, read-only | ! Caution, modifiable | !! Warning, destructive but recoverable | !!! Danger, irreversible

CRITICAL: Always use --dry-run before executing bulk operations. Bulk delete is permanent and cannot be undone.

When to use this skill

IMPORTANT: Always use the jira-as CLI. Never run Python scripts directly.

Use this skill when you need to:

  • Transition multiple issues through workflow states simultaneously
  • Assign multiple issues to a user (or unassign)
  • Set priority on multiple issues at once
  • Clone issues with their subtasks and links
  • Delete multiple issues permanently (with dry-run preview)
  • Execute operations with dry-run preview before making changes
  • Handle partial failures gracefully with progress tracking

Scale guidance:

  • 5-10 issues: Run directly, no special options needed
  • 50-100 issues: Use --dry-run first, then execute
  • 500+ issues: Use --dry-run, then execute in smaller batches if needed

Quick Start

# Preview before making changes
jira-as bulk transition --jql "project=PROJ AND status=\"In Progress\"" --to Done --dry-run

# Execute the transition
jira-as bulk transition --jql "project=PROJ AND status=\"In Progress\"" --to Done

For more patterns, see Quick Start Guide.

Available Commands

CommandPurposeExample
jira-as bulk transitionMove issues to new status--jql "..." --to "Done"
jira-as bulk assignAssign issues to user--jql "..." --assignee john
jira-as bulk set-prioritySet issue priority--jql "..." --priority High
jira-as bulk cloneClone issues--jql "..." --include-subtasks
jira-as bulk deleteDelete issues permanently--jql "..." --dry-run

All commands support --help for full documentation.

Common Options

All commands support these options:

OptionPurposeWhen to Use
-n/--dry-runPreview changesAlways use for >10 issues
-y/--yesSkip confirmationScripted automation
-m/--max-issues NLimit scope (default: 100)Testing, large operations
-o/--output FORMATOutput format: text (default), jsonJSON for scripting

Transition-Only Options

These options are only available for jira-as bulk transition:

OptionPurposeWhen to Use
--comment / -cAdd comment with transitionDocumenting bulk changes
--resolution / -rSet resolution (e.g., Fixed)Closing issues

Examples

Bulk Transition

# By issue keys
jira-as bulk transition --issues PROJ-1,PROJ-2,PROJ-3 --to Done

# By JQL query
jira-as bulk transition --jql "project=PROJ AND status=\"In Progress\"" --to Done

# With resolution
jira-as bulk transition --jql "type=Bug AND status=Verified" --to Closed --resolution Fixed

Bulk Assign

# Assign to user
jira-as bulk assign --jql "project=PROJ AND status=Open" --assignee "john.doe"

# Assign to self
jira-as bulk assign --jql "project=PROJ AND assignee IS EMPTY" --assignee self

# Unassign
jira-as bulk assign --jql "assignee=john.leaving" --unassign

Bulk Set Priority

jira-as bulk set-priority --jql "type=Bug AND labels=critical" --priority Highest

# Output as JSON
jira-as bulk set-priority --jql "type=Bug" --priority High --dry-run -o json

Bulk Clone

# ALWAYS preview first with dry-run (cloning creates many issues)
jira-as bulk clone --jql "sprint=\"Sprint 42\"" --include-subtasks --dry-run

# After reviewing the preview, execute without --dry-run
jira-as bulk clone --jql "sprint=\"Sprint 42\"" --include-subtasks --include-links

# Clone to different project
jira-as bulk clone --issues PROJ-1,PROJ-2 --target-project NEWPROJ --prefix "[Clone]"

Bulk Delete (DESTRUCTIVE)

# ALWAYS preview first with dry-run
jira-as bulk delete --jql "project=CLEANUP" --dry-run

# Delete by issue keys (preview first)
jira-as bulk delete --issues DEMO-1,DEMO-2,DEMO-3 --dry-run

# Execute deletion (after confirming dry-run output)
jira-as bulk delete --jql "project=CLEANUP" --yes

# Keep subtasks when deleting parent issues (subtasks deleted by default)
jira-as bulk delete --jql "project=CLEANUP" --no-subtasks --dry-run

Safety features:

  • --dry-run shows exactly what will be deleted before making changes
  • Confirmation required for >10 issues (lower than other operations)
  • Default --max-issues 100 prevents accidental mass deletion
  • Per-issue error tracking with summary of failures

Scale Recommendations

Issue CountRecommended Approach
<50Defaults are fine
50-500--dry-run first, then execute
500+--dry-run, then execute in smaller batches if needed

Getting rate limit (429) errors?

  • Use --max-issues to process in smaller batches
  • Consider running during off-peak hours

Exit Codes

CodeMeaning
0All operations successful
1Some failures or validation error
130Cancelled by user (Ctrl+C)

Troubleshooting

ErrorSolution
Transition not availableCheck issue status with jira-as issue get ISSUE-KEY --show-transitions
Permission deniedVerify JIRA project permissions (DELETE_ISSUES required for bulk delete)
Rate limit (429)Use --max-issues to process in smaller batches or run during off-peak hours
Invalid JQLTest JQL in JIRA search first
Cannot delete issue with subtasksSubtasks are deleted by default; use --no-subtasks to keep them

For detailed error recovery, see Error Recovery Playbook.

Documentation

GuideWhen to Use
Quick StartGet started in 5 minutes
Operations GuideChoose the right command
Error RecoveryHandle failures
Safety ChecklistPre-flight verification
Best PracticesComprehensive guidance

Related Skills

  • jira-lifecycle: Single-issue transitions and workflow
  • jira-search: Find issues with JQL queries
  • jira-issue: Create and update single issues
Skills Info
Original Name:jira-bulk-operationsAuthor:grandcamel