Skip to main content

jira-creator 📝

Build Status Python License Last Commit

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
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 .tmpl files under templates/
  • Uses TemplateLoader to 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.36

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jira-creator 0.0.36
File Size Uploaded
jira_creator-0.0.36.tar.gz 76.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jira-creator 0.0.36
File Interpreter ABI Platform
jira_creator-0.0.36-py3-none-any.whl Python 3 none any Details

Total release size: 217.1 kB

Release files / jira_creator-0.0.36.tar.gz

Download URL jira_creator-0.0.36.tar.gz
Size 76.9 kB
Tags Source
SHA-256 checksum
How to use checksums
0c20af6e0ea6e1b2e0f588b77e68bfce73fc5860233bf03562dea6ae9bd46602
BLAKE2b-256 checksum
How to use checksums
a3f0cf1e041813aa8f0d02ad9d0b3b804ca8410765e65e7a86dec723ae5f1176
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.36-py3-none-any.whl

Download URL jira_creator-0.0.36-py3-none-any.whl
Size 140.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4af6afe9630208ee98107c5c5b86b3fd4e65b05c4f25efbea0110c4fdb802182
BLAKE2b-256 checksum
How to use checksums
a53edc1b13bb66e77bd6bdf824493b39b10d74a4ee9602a9f0f2d586e9e8c663
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release history Release notifications | RSS feed

1.0.14

2 release files

1.0.13

2 release files

1.0.12

2 release files

1.0.11

2 release files

1.0.9

2 release files

1.0.3

2 release files

1.0.1

2 release files

0.0.44

2 release files

0.0.43

2 release files

0.0.42

2 release files

0.0.41

2 release files

0.0.40

2 release files

0.0.39

2 release files

0.0.38

2 release files

0.0.37

2 release files

This release

0.0.36 This release

2 release files

0.0.32

2 release files

0.0.31

2 release files

0.0.30

2 release files

0.0.29

2 release files

0.0.28

2 release files

0.0.27

2 release files

0.0.26

2 release files

0.0.17

2 release files

0.0.12

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page