RAG-based JIRA ticket generator using vector similarity search
Project description
JiraGen: Automated JIRA Issue Generation
🚀 Overview
Jiragen is a CLI designed to automate the creation of JIRA Issues through the use of Local Large Language Models (LLMs). It leverages the power of Ollama and LiteLLM to provide context-aware issue generation, enabling efficient and effective interaction with JIRA. Full documentation is available here.
📖 Table of Contents
🌟 Key Features
- 🧠 Local LLM Integration: Leverages Ollama and LiteLLM.
- 🔍 Context-Aware Issues: Incorporates relevant context using Vector store integration for scalable context handling.
- ✨ Customizable Templates: Adapt issue formats to your needs.
- 🔧 Metadata Extraction: Automates technical details from codebases.
- ⚙️ Configurable Parameters: Fine-tune the generation process.
⚡ Quick Start
Installation
Install JiraGen and its dependencies:
pip install jiragen
Install & run Ollama to use your local LLM:
curl https://ollama.ai/install.sh | sh
ollama pull phi4 # Replace with your preferred model
or export your OpenAI API key:
export OPENAI_API_KEY="YOUR_API_KEY"
Command Line Interface
JiraGen provides a powerful CLI for efficient ticket generation and management:
# Init
jiragen init
# Basic ticket generation
jiragen generate "Implement user authentication system"
# Generate with specific template
jiragen generate -t templates/custom.txt "Add API rate limiting"
# Generate with custom LLM configuration
jiragen generate --model codellama --temperature 0.8 "Refactor database schema"
# Status and management commands
jiragen status # Display vector store status
jiragen status --compact # Show compact status view
jiragen status --depth 2 # Limit directory tree depth
# Vector store operations
jiragen add path/to/files # Add files to vector store
jiragen rm path/to/files # Remove files from vector store
API Usage
from jiragen import TicketGenerator, LLMConfig, GeneratorConfig
from pathlib import Path
# Configure the generator
config = GeneratorConfig(
template_path=Path("templates/jira_template.txt"),
llm_config=LLMConfig(model="llama2", api_base="http://localhost:11434"),
)
# Initialize the generator
generator = TicketGenerator(vector_store_client, config)
# Generate a ticket
ticket = generator.generate("Implement user authentication using JWT")
⚙️ Configuration Options
JiraGen supports a variety of configuration parameters to tailor ticket generation:
LLMConfig(
model="llama2", # Ollama model to use
api_base="http://localhost:11434", # Ollama endpoint
max_tokens=2000,
temperature=0.7,
top_p=0.95,
)
📝 Template Customization
Create templates to match your organization's needs:
Title: {title}
Type: {type}
Priority: {priority}
Description:
{description}
Acceptance Criteria:
{acceptance_criteria}
Technical Implementation:
{implementation_details}
🤝 Contributing
We ❤️ contributions! To contribute:
- Fork the repository.
- Create a feature branch.
- Submit a pull request with a detailed description of your changes.
For more details, refer to our CONTRIBUTING.md.
📜 License
JiraGen is released under the MIT License.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jiragen-0.3.0.tar.gz.
File metadata
- Download URL: jiragen-0.3.0.tar.gz
- Upload date:
- Size: 62.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62485221c809a13dbd03202cdde6fbe8091e0cf5cdcb1e8a409ffbf3c681c626
|
|
| MD5 |
8167ec1955b7701755a12392aaa5b4be
|
|
| BLAKE2b-256 |
263dd2f24b2479495b7a381e34e20c1b645e96470731deb176c66a74dc9c2f74
|
Provenance
The following attestation bundles were made for jiragen-0.3.0.tar.gz:
Publisher:
releases.yml on Abdellah-Laassairi/jiragen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jiragen-0.3.0.tar.gz -
Subject digest:
62485221c809a13dbd03202cdde6fbe8091e0cf5cdcb1e8a409ffbf3c681c626 - Sigstore transparency entry: 164211796
- Sigstore integration time:
-
Permalink:
Abdellah-Laassairi/jiragen@abdbcb3fcbed4443bf5e4315989ac2f59a703f5d -
Branch / Tag:
refs/tags/0.3.0 - Owner: https://github.com/Abdellah-Laassairi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
releases.yml@abdbcb3fcbed4443bf5e4315989ac2f59a703f5d -
Trigger Event:
push
-
Statement type:
File details
Details for the file jiragen-0.3.0-py3-none-any.whl.
File metadata
- Download URL: jiragen-0.3.0-py3-none-any.whl
- Upload date:
- Size: 57.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
faf6e3c346bd7ca1db8de59e9c7197df85c4a8a01fab4c68e7919199912611d9
|
|
| MD5 |
89be714d08d897bfe41751d63ce2173b
|
|
| BLAKE2b-256 |
f19fdeb43da984c7dd7c181c4ff1a47943d26044eaeed2288ec6446a40c415e0
|
Provenance
The following attestation bundles were made for jiragen-0.3.0-py3-none-any.whl:
Publisher:
releases.yml on Abdellah-Laassairi/jiragen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jiragen-0.3.0-py3-none-any.whl -
Subject digest:
faf6e3c346bd7ca1db8de59e9c7197df85c4a8a01fab4c68e7919199912611d9 - Sigstore transparency entry: 164211798
- Sigstore integration time:
-
Permalink:
Abdellah-Laassairi/jiragen@abdbcb3fcbed4443bf5e4315989ac2f59a703f5d -
Branch / Tag:
refs/tags/0.3.0 - Owner: https://github.com/Abdellah-Laassairi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
releases.yml@abdbcb3fcbed4443bf5e4315989ac2f59a703f5d -
Trigger Event:
push
-
Statement type: