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

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.26
File Size Uploaded
jira_creator-0.0.26.tar.gz 30.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jira-creator 0.0.26
File Interpreter ABI Platform
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

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

0.0.27

2 release files

This release

0.0.26 This release

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