jira-creator
Create JIRA issues (stories, bugs, epics, spikes, tasks) quickly using standardized templates and optional AI-enhanced descriptions.
⚡ Quick Start (Under 30 Seconds)
1. Create your config file and enable 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 "$(register-python-argcomplete rh-issue)"
EOF
source ~/.bashrc.d/jira.sh
2. Link the CLI wrapper
chmod +x rh-issue-wrapper.sh
sudo ln -s $(pwd)/rh-issue-wrapper.sh /usr/local/bin/rh-issue
3. Run it
rh-issue create story "Improve onboarding experience"
🧪 Usage & Commands
🆕 Create 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
Use --edit to use your $EDITOR, and --dry-run to print the payload without creating the issue.
🔁 Change Issue Type
rh-issue change AAP-12345 story
🔁 Migrate Issue
rh-issue migrate AAP-54321 story
✏️ Edit Description
rh-issue edit AAP-98765
rh-issue edit AAP-98765 --no-ai
🧍 Unassign Issue
rh-issue unassign AAP-12345
📋 List Issues
rh-issue list
rh-issue list --project AAP --component api --user jdoe
🏷️ Set Priority
rh-issue set-priority AAP-123 High
📅 Sprint Management
rh-issue set-sprint AAP-456 1234
rh-issue remove-sprint AAP-456
rh-issue add-sprint AAP-456 "Sprint 33"
🚦 Set Status
rh-issue set-status AAP-123 "In Progress"
🤖 AI Provider Support
You can plug in different AI providers by setting AI_PROVIDER.
✅ 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)
📁 Project Structure
jira-creator/
├── rh-jira.py
├── rh-issue-wrapper.sh
├── templates/
├── providers/
├── jira/
├── tests/
└── Pipfile
📜 License
This project is licensed under the Apache License.
Metadata
Release files for jira-creator 0.0.26
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.26.tar.gz | 30.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jira_creator-0.0.26-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 93.0 kB
Release files / jira_creator-0.0.26.tar.gz
| Download URL | jira_creator-0.0.26.tar.gz |
|---|---|
| Size | 30.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
01538f01cc7f0dd7ea3cbceea3495a0220f7b1a9c22b2667a1c8f7137bafcfca
|
|
BLAKE2b-256 checksum How to use checksums |
96bd5b3133e9cb4b61968fa5417095b8dd3cd9215d15cc1552ae1f6bccfb45e3
|
| 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.26-py3-none-any.whl
| Download URL | jira_creator-0.0.26-py3-none-any.whl |
|---|---|
| Size | 62.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dcef9801470630cea7baede494f661a5fbd8a243f769ff01a67da026d262ba55
|
|
BLAKE2b-256 checksum How to use checksums |
4251c98e23974904f41f4893eebdf74856bf1b8abe8fefc908ee5eab279930b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|