Import Command
Import existing JIRA tickets into local tracking with automatic project mapping.
Basic Usage
jira-ticket-creator import --jql "project = PROJ" --map-project backend
Flags
| Flag | Type | Description | Example |
|---|---|---|---|
--jql | string | Required. JQL query for tickets to import | --jql "project = PROJ" |
--map-project | string | Logical project name for all imported tickets | --map-project backend |
--map-rule | strings | Inline mapping rules (repeatable) | --map-rule "PROJ->backend" |
--dry-run | boolean | Preview import without saving | --dry-run |
--update-existing | boolean | Update already-imported tickets | --update-existing |
--mapping-path | string | Project mapping file path | --mapping-path ~/.jira/mappings.json |
Examples
Basic Import
# Import all tickets from PROJ project
jira-ticket-creator import --jql "project = PROJ" --map-project backend
# Import in-progress tickets
jira-ticket-creator import --jql "status = 'In Progress'" --map-project backend
Dry Run Preview
# See what would be imported without saving
jira-ticket-creator import --jql "project = PROJ" \
--map-project backend \
--dry-run
Output example:
Found 15 issue(s) to import
Import Summary:
Total: 15
backend: 15
Dry run completed (no changes saved)
Multiple Project Mapping
# Map different prefixes to projects
jira-ticket-creator import --jql "project in (PROJ, API, DB)" \
--map-rule "PROJ->backend" \
--map-rule "API->backend" \
--map-rule "DB->devops"
Update Existing Tickets
# Refresh imported tickets with latest data
jira-ticket-creator import --jql "status = 'In Progress'" \
--update-existing
Project Mapping
Using Persistent Mapping File
Create ~/.jira/project-mapping.json:
{
"mappings": {
"backend": {
"ticket_keys": ["PROJ", "API", "DB"],
"description": "Backend Team"
},
"frontend": {
"ticket_keys": ["UI", "WEB", "MOBILE"],
"description": "Frontend Team"
},
"devops": {
"ticket_keys": ["INFRA", "CI", "DEPLOY"],
"description": "DevOps Team"
}
}
}
Then import automatically uses these mappings:
# Will use PROJ->backend mapping from file
jira-ticket-creator import --jql "project = PROJ"
Inline Mapping Rules
For one-off imports, use inline rules:
jira-ticket-creator import --jql "project = PROJ" \
--map-rule "PROJ->backend" \
--map-rule "PROJ->api-team"
No Mapping
If no mapping is specified:
jira-ticket-creator import --jql "project = PROJ" --map-project backend
# All tickets assigned to 'backend' project
Workflow Examples
Import Project for Team
# Step 1: Create mapping file
cat > ~/.jira/project-mapping.json << EOF
{
"mappings": {
"team-a": {
"ticket_keys": ["PROJ"],
"description": "Team A"
}
}
}
EOF
# Step 2: Import all team tickets
jira-ticket-creator import --jql "project = PROJ"
# Step 3: View team report
jira-ticket-creator team summary --project team-a
# Step 4: Generate Gantt chart
jira-ticket-creator gantt --format html --output team-workload.html
Multi-Team Setup
# Create comprehensive mapping
cat > ~/.jira/project-mapping.json << EOF
{
"mappings": {
"backend": {
"ticket_keys": ["PROJ", "API", "DB"],
"description": "Backend Team"
},
"frontend": {
"ticket_keys": ["UI", "WEB"],
"description": "Frontend Team"
}
}
}
EOF
# Import from each project
jira-ticket-creator import --jql "project = PROJ" --map-project backend
jira-ticket-creator import --jql "project = UI" --map-project frontend
# View by team
jira-ticket-creator team summary --project backend
jira-ticket-creator team summary --project frontend
# Generate reports
jira-ticket-creator gantt --format mermaid --output gantt.md
jira-ticket-creator pm dashboard
Regular Sync
# Update all imported tickets weekly
jira-ticket-creator import --jql "updated >= -7d" --update-existing
# Generate fresh report
jira-ticket-creator report --format html --output weekly-report.html
Map Parent Tickets with Children
Map an epic or feature so all child tickets inherit the same project mapping:
# Import parent epic
jira-ticket-creator import --jql "key = PROJ-500" --map-project feature-checkout
# All subtasks and child stories now map to "feature-checkout"
# Verify with:
jira-ticket-creator search --jql "parent = PROJ-500"
# View all work for this feature
jira-ticket-creator gantt --format html --output feature-checkout.html
Example: Product Feature Breakdown
# Mobile Redesign Feature
jira-ticket-creator import --jql "key = PROJ-1000" --map-project mobile-redesign
# Children: Design, Frontend, Backend, QA all map to "mobile-redesign"
# Payment Integration Feature
jira-ticket-creator import --jql "key = PROJ-1001" --map-project payment-integration
# Children: API, UI, Security, Testing all map to "payment-integration"
# View separate work efforts
jira-ticket-creator team summary --project mobile-redesign
jira-ticket-creator team summary --project payment-integration
Example: Sprint-Based Mapping
# Map Q1 sprint epic
jira-ticket-creator import --jql "key = PROJ-2000" --map-project q1-sprint
# Map Q2 sprint epic
jira-ticket-creator import --jql "key = PROJ-2001" --map-project q2-sprint
# Compare workload across sprints
jira-ticket-creator gantt --format html --output q1-q2-comparison.html
Output
Successful import:
Found 25 issue(s) to import
Import Summary:
Total: 25
backend: 15
frontend: 10
Import completed
Added/Updated: 20
Skipped (existing): 5
Integration with Other Commands
After importing, use other commands for analysis:
# Search imported tickets
jira-ticket-creator search --jql "project = PROJ"
# Query specific fields
jira-ticket-creator query --jql "project = PROJ AND status = 'In Progress'" \
--format json
# Generate reports
jira-ticket-creator report --format html
# View team workload
jira-ticket-creator team summary --project backend
# Create Gantt chart
jira-ticket-creator gantt --format mermaid
Tips & Tricks
- Import specific status
jira-ticket-creator import --jql "status = 'In Progress'" \ --map-project active - Import recent changes
jira-ticket-creator import --jql "updated >= -24h" \ --update-existing - Import by assignee
jira-ticket-creator import --jql "assignee = john" \ --map-project johns-work - Schedule regular imports
# Add to crontab for daily sync 0 9 * * * /path/to/jira-ticket-creator import --jql "updated >= -1d" --update-existing
Troubleshooting
| Issue | Solution |
|---|---|
jql is required | Add --jql "your query" flag |
no issues found | Check JQL query is valid |
mapping file not found | Run without --mapping-path or create file at ~/.jira/project-mapping.json |
failed to add ticket | Check storage directory permissions |
See Also
- Query Command - Execute JQL queries with output formatting
- Project Mapping - Configure project mappings