Skip to content
This repository was archived by the owner on Feb 6, 2026. It is now read-only.

feat(issues): add move command for moving issues between projects#62

Merged
piekstra merged 1 commit intomainfrom
piekstra/57-move-issues
Jan 29, 2026
Merged

feat(issues): add move command for moving issues between projects#62
piekstra merged 1 commit intomainfrom
piekstra/57-move-issues

Conversation

@piekstra
Copy link
Copy Markdown
Collaborator

@piekstra piekstra commented Jan 29, 2026

[#57]

Add the ability to move issues between projects using Jira Cloud's bulk move API.

Summary

  • Add jtk issues move <issue-key>... --to-project <project> command
  • Add jtk issues move-status <task-id> to check async operation status
  • Uses Jira Cloud bulk move API (not available on Server/Data Center)

Usage

# Move a single issue to another project
jtk issues move PROJ-123 --to-project NEWPROJ

# Move to specific issue type
jtk issues move PROJ-123 --to-project NEWPROJ --to-type Task

# Move multiple issues
jtk issues move PROJ-123 PROJ-124 PROJ-125 --to-project NEWPROJ

# Move without waiting for completion
jtk issues move PROJ-123 --to-project NEWPROJ --no-wait

# Check move task status
jtk issues move-status abc123

Features

  • Automatically infers target issue type from source (or specify with --to-type)
  • Async operation with built-in polling (--wait is default, use --no-wait for fire-and-forget)
  • Notification control via --notify flag
  • Reports successes and failures when operation completes
  • Maximum 1000 issues per request (Jira API limit)

Limitations (Jira API constraints)

  • Jira Cloud only - not available on Server/Data Center
  • Subtasks must be moved with their parent or separately
  • Some field values may need manual remapping

Test plan

  • All existing tests pass
  • Lint passes
  • Command help works correctly
  • Manual testing with real Jira Cloud instance

Closes #57

[#57]

- Add `jtk issues move <issue-key>... --to-project <project>` command
- Add `jtk issues move-status <task-id>` to check async operation status
- Uses Jira Cloud bulk move API (not available on Server/Data Center)
- Supports specifying target issue type with `--to-type`
- Async by default with `--wait` (can use `--no-wait` to return immediately)
- Optional notifications via `--notify` flag

API layer includes:
- MoveIssues - initiates bulk move operation
- GetMoveTaskStatus - checks async task status
- GetProjectIssueTypes - lists available issue types
- GetProjectStatuses - lists available statuses
- BuildMoveRequest - helper to construct move requests

Closes #57
@piekstra piekstra merged commit c4f9946 into main Jan 29, 2026
2 checks passed
@piekstra piekstra deleted the piekstra/57-move-issues branch January 29, 2026 20:45
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Investigate moving tickets from one project to another, and reconciling states

1 participant