Jira Ticket Estimation API

ML-basierte Zeitschätzung für Jira-Tickets. Alle API-Aufrufe erfordern einen gültigen API-Token.

Authentifizierung

Sende den API-Token im Authorization Header:

Authorization: Bearer YOUR_API_TOKEN

Oder alternativ als X-API-Key Header:

X-API-Key: YOUR_API_TOKEN

Endpoints

POST/api/v1/predict🔒 Auth required

Schätzt den Zeitaufwand für ein einzelnes Ticket.

Request Body

{
  "summary": "Login-Button funktioniert nicht",
  "description": "Bei Klick passiert nichts...",
  "issueType": "Bug",
  "priority": "High",
  "projectKey": "WEBAPP"
}

Response

{
  "estimatedHours": 2.45,
  "category": "M",
  "categoryDescription": "2-4 Stunden (halber Tag)",
  "featureCount": 392,
  "modelVersion": "xgboost-v1"
}
POST/api/v1/predict/batch🔒 Auth required

Batch-Schätzung für mehrere Tickets (max. 50).

GET/api/v1/auth/me🔒 Auth required

Gibt Informationen zum verwendeten Token und Rate Limit zurück.

GET/health

Health Check (keine Authentifizierung erforderlich).

Rate Limiting

Alle authentifizierten Endpoints haben ein Rate Limit von 60 Requests pro Minute.

Die aktuellen Limits werden in den Response-Headern zurückgegeben:

Header Beschreibung
X-RateLimit-Limit Maximale Requests pro Minute
X-RateLimit-Remaining Verbleibende Requests
X-RateLimit-Reset Sekunden bis Reset

Issue Types

Wert Beschreibung
Bug
Story
Task
Feature
Improvement
Sub-task
Epic

Priorities

Wert
Highest
High
Medium
Low
Lowest

Kategorien

Kategorie Stunden Beschreibung
XS < 1h Weniger als 1 Stunde
S 1-2h 1-2 Stunden
M 2-4h Halber Tag
L 4-8h 1 Tag
XL 8-16h 1-2 Tage
XXL 16-40h 2-5 Tage

Beispiel mit curl

curl -X POST :8080/api/v1/predict \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "summary": "Login-Button funktioniert nicht",
    "description": "Bei Klick auf den Login-Button passiert nichts.",
    "issueType": "Bug",
    "priority": "High",
    "projectKey": "WEBAPP"
  }'