The ji issue command provides subcommands for viewing and synchronizing Jira issues. It serves as a namespace for issue-related operations.
-
When
ji issueis invoked without subcommands, the system shall display help information. -
When
ji issue --helpis invoked, the system shall display comprehensive help for all issue subcommands.
-
When
ji issue view <issue-key>is invoked, the system shall display detailed information about the specified issue. -
When
ji issue view <issue-key> --jsonis invoked, the system shall output the issue data in JSON format. -
The issue view shall display in YAML format by default:
key: EVAL-123 summary: Fix login authentication bug description: | Users are unable to log in using their email addresses... status: In Progress priority: High assignee: John Doe reporter: Jane Smith created: 2023-12-01T10:30:00Z updated: 2023-12-05T14:22:00Z
-
When
--jsonflag is used, the system shall output the complete issue object as returned by Jira API.
-
When
ji issue sync <project-key>is invoked, the system shall synchronize all issues from the specified project to the local cache. -
When
ji issue sync <project-key> --cleanis invoked, the system shall:- Remove all existing issues for that project from local cache
- Fetch all issues from the project fresh from Jira
- Store them in the local cache
-
During sync, the system shall display progress information:
- Total number of issues to sync
- Current progress (e.g., "Syncing issues... 50/200")
- Completion confirmation
-
Issue view shall include all standard fields:
- Key, summary, description
- Status, priority, issue type
- Assignee, reporter
- Created and updated timestamps
- Labels and components (if any)
-
Issue view shall include custom fields when available:
- Story points
- Acceptance criteria
- Sprint information
- Any other configured custom fields
-
All timestamps shall be displayed in ISO 8601 format for consistency.
-
Multi-line text fields (description, acceptance criteria) shall use YAML literal block format with proper indentation.
-
Issue view shall prioritize local cache for immediate display when available.
-
If issue is not in cache or cache is stale (>24 hours), the system shall fetch fresh data from Jira.
-
After fetching fresh data, the system shall update the local cache automatically.
-
If authentication is not configured, the system shall display an error and direct user to run
ji auth. -
If the issue key does not exist, the system shall display:
Error: Issue <issue-key> not found -
If the project key does not exist during sync, the system shall display:
Error: Project <project-key> not found or not accessible -
If sync fails due to network issues, the system shall:
- Display appropriate error message
- Preserve any existing cached data
- Suggest trying again later
-
For permission errors, the system shall display:
Error: You don't have permission to access <resource>
-
Issue view from cache shall load in under 100ms.
-
Fresh issue fetch shall complete within 5 seconds under normal conditions.
-
Sync operations shall process issues in batches of 50 for optimal performance.
-
Large project syncs (>1000 issues) shall display progress updates every 100 issues.
$ ji issue view EVAL-123
key: EVAL-123
summary: Fix login authentication bug
description: |
Users are unable to log in using their email addresses.
The authentication service is returning 401 errors.
status: In Progress
priority: High
assignee: John Doe
reporter: Jane Smith
created: 2023-12-01T10:30:00Z
updated: 2023-12-05T14:22:00Z$ ji issue view EVAL-123 --json
{
"id": "12345",
"key": "EVAL-123",
"fields": {
"summary": "Fix login authentication bug",
"description": "Users are unable to log in...",
...
}
}$ ji issue sync EVAL
Syncing issues from project EVAL...
Fetched 150 issues
✓ Synchronized 150 issues from EVAL project$ ji issue sync EVAL --clean
Clearing existing issues for project EVAL...
Syncing issues from project EVAL...
Fetched 150 issues
✓ Clean sync complete: 150 issues from EVAL project- Uses Jira REST API for issue retrieval
- Supports both issue keys and issue IDs
- YAML output formatted for human readability
- JSON output preserves complete API response structure
- Batch processing for efficient sync operations
- Comprehensive error handling with user-friendly messages
- Cache integration for optimal performance