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 AI_API_KEY=sk-...
export AI_MODEL="gpt-4o-mini"
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
export JIRA_EPIC_FIELD="customfield_12311140"
export JIRA_ACCEPTANCE_CRITERIA_FIELD="customfield_12315940"
export JIRA_BLOCKED_FIELD="customfield_12316543"
export JIRA_BLOCKED_REASON_FIELD="customfield_12316544"
export JIRA_STORY_POINTS_FIELD="customfield_12310243"
export JIRA_SPRINT_FIELD="customfield_12310940"
export VOSK_MODEL="/home/daoneill/.vosk/vosk-model-small-en-us-0.15"
# Enable autocomplete
eval "$(/usr/local/bin/rh-issue --_completion | sed 's/rh_jira.py/rh-issue/')"
EOF
source ~/.bashrc.d/jira.sh
2. Link the command-line tool wrapper 🖇️
chmod +x jira_creator/rh-issue-wrapper.sh
sudo ln -s $(pwd)/jira_creator/rh-issue-wrapper.sh /usr/local/bin/rh-issue
3. Run it 🚀
rh-issue create story "Improve onboarding experience"
🧪 Usage & Commands 🛠️
🆕 Create Issues
Use the create command followed by the issue type (bug, story, epic, spike) and the description.
Use --edit to use your $EDITOR, and --dry-run to print the payload without creating the issue.
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
🔁 Change Issue Type
To change an issue type, use the change command, followed by the issue key and the new type.
rh-issue change AAP-12345 story
📦 Migrate Issue
To migrate an issue, use the migrate command followed by the issue key and the new type.
rh-issue migrate AAP-54321 story
✏️ Edit Description
To edit the description of an issue, use the edit command and the issue key. Use --no-ai to disable AI enhancement.
rh-issue edit AAP-98765
rh-issue edit AAP-98765 --no-ai
🧍 Unassign Issue
To unassign an issue, use the unassign command followed by the issue key.
rh-issue unassign AAP-12345
📋 List Issues
To list issues, use the list command. You can filter by project, component, and user.
rh-issue list
rh-issue list --project AAP --component api --user jdoe
🏷️ Set Priority
To set the priority of an issue, use the set-priority command, followed by the issue key and the new priority.
rh-issue set-priority AAP-123 High
📅 Sprint Management
To manage sprints, use the set-sprint, remove-sprint, and add-sprint commands followed by the issue key and the sprint details.
rh-issue set-sprint AAP-456 1234
rh-issue remove-sprint AAP-456
rh-issue add-sprint AAP-456 "Sprint 33"
🚦 Set Status
To set the status of an issue, use the set-status command, followed by the issue key and the new status.
rh-issue set-status AAP-123 "In Progress"
🤖 AI Provider Support 🧠
You can plug in different AI providers by setting AI_PROVIDER.
Check out the following examples of setting up different AI providers:
✅ OpenAI
To use OpenAI, set your AI_API_KEY and optionally specify an AI_MODEL.
export AI_PROVIDER=openai
export AI_API_KEY=sk-...
export AI_MODEL=gpt-4 # Optional
🦙 LLama3
To use LLama3, first pull the model using Docker, then specify the provider, URL, and model.
docker compose exec ollama ollama pull LLama3
export AI_PROVIDER=LLama3
export AI_URL=http://localhost:11434/api/generate
export AI_MODEL=LLama3
🧠 DeepSeek
To use DeepSeek, first pull the model using Docker, then specify the provider, URL, and model.
docker compose exec ollama ollama pull deepseek-r1:7b
export AI_PROVIDER=deepseek
export AI_URL=http://localhost:11434/api/generate
export AI_MODEL=http://localhost:11434/api/generate
🖥 GPT4All
To use GPT4All, install the package via pip and set the provider.
pip install gpt4all
export AI_PROVIDER=gpt4all
# WIP
🧪 InstructLab
To use InstructLab, specify the provider, URL, and model.
export AI_PROVIDER=instructlab
export AI_URL=http://localhost:11434/api/generate
export AI_MODEL=instructlab
# WIP
🧠 BART
To use BART, specify the provider and URL.
export AI_PROVIDER=bart
export AI_URL=http://localhost:8000/bart
# WIP
🪫 Noop
To disable AI enhancement, set the provider as noop.
export AI_PROVIDER=noop
🛠 Dev Setup ⚙️
Install the development dependencies with pipenv.
pipenv install --dev
Testing & Linting
Run tests, linting, and autofix code formatting with Make.
make test
make lint
make format # autofix 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.37
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.37.tar.gz | 76.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jira_creator-0.0.37-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 216.2 kB
Release files / jira_creator-0.0.37.tar.gz
| Download URL | jira_creator-0.0.37.tar.gz |
|---|---|
| Size | 76.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3ac24a5d558c9b98e84c961f79f4e6f1bbf3ba0e3a212442b49f2cdeb5e9017c
|
|
BLAKE2b-256 checksum How to use checksums |
6abdd69634b3ab1caef2523976574295bf441e8b8113269892e5c76bf82e943b
|
| 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.37-py3-none-any.whl
| Download URL | jira_creator-0.0.37-py3-none-any.whl |
|---|---|
| Size | 139.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f94444bf220c4e98f29ce319dd06d104f411b9ce40274044cea0f0bc571da39a
|
|
BLAKE2b-256 checksum How to use checksums |
960e1d5e440a194d7fe73a8a2bf41f1c5ff233ab3273a9ccea72edbf64270159
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|