main

Issue workflows

Read and discover

jrc issue list --jql 'assignee = currentUser() AND resolution = Unresolved' \
  --fields key,summary,status,priority --output json
jrc issue list --board my-board --max 50 --output json
jrc issue get PROJ-123 --output json
jrc issue children PROJ-123 --fields key,summary,status --output json
jrc issue custom-fields --all --output json

Use jrc describe fields issue list or issue get before requesting filtered fields.

Create and edit

Use project create-metadata to discover required and allowed fields. Apply configured components, priorities, and type-specific description templates unless the user supplies replacements. Omit optional fields the user did not request and the config does not default.

Prefer direct create flags for --due-date, --parent, and --fix-version. Use repeatable --custom-field 'Name=value' for configured custom fields.

Editing labels, components, fix versions, and affects versions replaces the existing values. Fetch the issue first when preserving existing values matters.

jrc issue edit PROJ-123 --priority High --story-points 5 --dry-run
jrc issue edit PROJ-123 --issue-type Story --parent PROJ-10 --dry-run

Transitions and people

List transitions before choosing a target unless the user supplied an exact transition or status:

jrc issue transition PROJ-123 --list --output json
jrc issue transition PROJ-123 --to 'In Progress' --dry-run
jrc issue transition PROJ-123 --auto --dry-run

Resolve assignees with jrc user list --query when names are ambiguous. Use issue assign, watch, unwatch, watchers, vote, and unvote only for the requested issue.

Comments, cloning, and deletion

Use issue comment list/add/edit/delete. Prefer --body-file for substantial comments. Comment and issue deletion require --confirm; dry-run first.

issue clone copies summary, type, and description only. It does not copy links, attachments, or subtasks. Tell the user when those omissions matter.