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

2. Link the CLI 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

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

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

Built distribution (wheel)

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

Total release size: 95.9 kB

Release files / jira_creator-0.0.28.tar.gz

Download URL jira_creator-0.0.28.tar.gz
Size 31.4 kB
Tags Source
SHA-256 checksum
How to use checksums
465e58a82a8d90d60617ed74a3551de1d586757371a9fc3a0123fff2a4efeda6
BLAKE2b-256 checksum
How to use checksums
40f5489ff164fa56e4747028f6d1c2234209f35a1ad06fe210554be861d1fb6b
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.28-py3-none-any.whl

Download URL jira_creator-0.0.28-py3-none-any.whl
Size 64.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
29f0938657479310975dbb41dd51ff958b95c13ba1bc78bbcc8507f2ab703d4b
BLAKE2b-256 checksum
How to use checksums
f5fa8d2ca438d36b5b66ac45b275dc2892686c4c737a9a01d3d183a1873ec2e8
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

This release

0.0.28 This release

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