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 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

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 .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)

📁 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.27

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.27
File Size Uploaded
jira_creator-0.0.27.tar.gz 31.4 kB Details

Built distribution (wheel)

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

Total release size: 95.9 kB

Release files / jira_creator-0.0.27.tar.gz

Download URL jira_creator-0.0.27.tar.gz
Size 31.4 kB
Tags Source
SHA-256 checksum
How to use checksums
4aed7a5a374ceccae938effdecc1b5499296e7f0a152ee16e14281eeb6e6f7f0
BLAKE2b-256 checksum
How to use checksums
0abee853d7f10bb8c7d955e351b5c7be4e6a55ba89c6caa775230cbbc329d223
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.27-py3-none-any.whl

Download URL jira_creator-0.0.27-py3-none-any.whl
Size 64.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
517f799d758dfc6dd447082004eaad0328234305e9c58a6bce3b36a1950afe0d
BLAKE2b-256 checksum
How to use checksums
6165b8ecc4523fa5be260a4653e589c76cf322e46997183a211d200da8c43ec7
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

0.0.36

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

This release

0.0.27 This release

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