jira-creator
Create JIRA issues (stories, bugs, epics, spikes, tasks) quickly using standardized templates and optional AI-enhanced descriptions.
⚡ Quick Start (Under 30 Seconds)
🔧 Step 1. Create Your Config File and Enable Autocomplete
Autocomplete enables you to quickly and efficiently use the JIRA command-line tool. Follow the below commands to set up autocomplete:
mkdir -p ~/.bashrc.d
cat <<EOF > ~/.bashrc.d/jira.sh
export JPAT="your_jira_personal_access_token"
export AI_PROVIDER=openai
export OPENAI_API_KEY=sk-...
export JIRA_URL="https://issues.redhat.com"
export PROJECT_KEY="AAP"
export AFFECTS_VERSION="aa-latest"
export COMPONENT_NAME="analytics-hcc-service"
export PRIORITY="Normal"
export JIRA_BOARD_ID=21125
# Enable autocomplete
eval "$(/usr/local/bin/rh-issue --_completion | sed 's/rh_jira.py/rh-issue/')"
EOF
source ~/.bashrc.d/jira.sh
🔗 Step 2. Link the Command-Line Tool Wrapper
This creates a symbolic link to the command-line tool wrapper, allowing you to use the tool from any location:
chmod +x jira_creator/rh-issue-wrapper.sh
sudo ln -s $(pwd)/jira_creator/rh-issue-wrapper.sh /usr/local/bin/rh-issue
🏃♀️ Step 3. Run It
Here's how to create a story issue:
rh-issue create story "Improve onboarding experience"
🧪 Usage & Commands
🆕 Create Issues
You can use the create command to make various kinds of issues:
rh-issue create bug "Fix login crash"
rh-issue create story "Refactor onboarding flow"
rh-issue create epic "Unify frontend UI" --edit
rh-issue create spike "Evaluate GraphQL support" --dry-run
The --edit flag opens the issue's description in your $EDITOR for editing, and --dry-run prints the payload without creating the issue.
🔀 Change Issue Type
You can alter the type of an existing issue with the change command:
rh-issue change AAP-12345 story
➡️ Migrate Issue
The migrate command allows you to move an issue to a different type:
rh-issue migrate AAP-54321 story
✏️ Edit Description
Use the edit command to modify the description of an issue:
rh-issue edit AAP-98765
rh-issue edit AAP-98765 --no-ai
The --no-ai flag lets you edit without AI assistance.
🧍 Unassign Issue
The unassign command removes the current assignee from an issue:
rh-issue unassign AAP-12345
📋 List Issues
The list command shows all issues, with optional filtering:
rh-issue list
rh-issue list --project AAP --component api --user jdoe
🏷️ Set Priority
Use the set-priority command to change the priority of an issue:
rh-issue set-priority AAP-123 High
📅 Sprint Management
The set-sprint, remove-sprint, and add-sprint commands help manage sprints:
rh-issue set-sprint AAP-456 1234
rh-issue remove-sprint AAP-456
rh-issue add-sprint AAP-456 "Sprint 33"
🚦 Set Status
The set-status command changes the status of an issue:
rh-issue set-status AAP-123 "In Progress"
🤖 AI Provider Support
You can plug in different AI providers by setting AI_PROVIDER. Here are some examples:
- OpenAI:
export AI_PROVIDER=openai
export OPENAI_API_KEY=sk-...
export OPENAI_MODEL=gpt-4 # Optional
- GPT4All:
pip install gpt4all
export AI_PROVIDER=gpt4all
- InstructLab:
export AI_PROVIDER=instructlab
export INSTRUCTLAB_URL=http://localhost:11434/api/generate
export INSTRUCTLAB_MODEL=instructlab
- BART:
export AI_PROVIDER=bart
export BART_URL=http://localhost:8000/bart
- DeepSeek:
export AI_PROVIDER=deepseek
export DEEPSEEK_URL=http://localhost:8000/deepseek
- Noop:
export AI_PROVIDER=noop
🛠 Dev Setup
pipenv install --dev
Testing & Linting
make test
make lint
make format # auto-fix formatting
⚙️ How It Works
- Loads field definitions from
.tmplfiles undertemplates/ - Uses
TemplateLoaderto generate Markdown descriptions - Optionally applies AI cleanup for readability and structure
- Sends to JIRA via REST API (or dry-runs it)
📜 License
This project is licensed under the Apache License.
Metadata
Release files for jira-creator 0.0.32
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jira_creator-0.0.32.tar.gz | 47.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jira_creator-0.0.32-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 146.1 kB
Release files / jira_creator-0.0.32.tar.gz
| Download URL | jira_creator-0.0.32.tar.gz |
|---|---|
| Size | 47.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
28256262ee8fe7c8b57a9a6da66f148c05bb1346d5d9f7ba8271bc2488f94bc4
|
|
BLAKE2b-256 checksum How to use checksums |
bb8af0bd7fe739426532e49b62731442b7f2e4d35ebb5be5d9173682cd7997c4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / jira_creator-0.0.32-py3-none-any.whl
| Download URL | jira_creator-0.0.32-py3-none-any.whl |
|---|---|
| Size | 98.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
419857d6470c570cac4972eaa7baf469f72d1b25f23e54c6434d699672e9f158
|
|
BLAKE2b-256 checksum How to use checksums |
59ac4f1bf732e72760dca382075c86c1b3c3f2264a6c48181aa7ee3859e8dc00
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|