A web service that accepts a Jira issue description and uses the OpenAI API to return a story point estimate (in person-days), a priority recommendation, and a written justification — providing additional input during team refinement sessions.
- Python 3.11+
- An OpenAI API key
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# Edit .env and set your OPENAI_API_KEYuvicorn app.main:app --reloadThe UI is available at http://localhost:8000 and the API at http://localhost:8000/api/analyze.
Returns {"status": "ok"}.
Request body:
{ "description": "<Jira issue description text>" }Response:
{
"story_points": 3,
"priority": "normal",
"justification": "..."
}story_points is a number representing estimated person-days (e.g. 0.5, 1, 2, 3, 5, 8, 13).
Priority values: blocker | critical | major | normal | minor
pytestBuild and run with Podman (or Docker):
podman build -t refinement-bot:latest .
podman run --rm -p 8000:8000 -e OPENAI_API_KEY=<your-key> refinement-bot:latestSee deploy/README.md for instructions on applying the OpenShift manifests (Deployment, Service, Route) and configuring the required Secret.