Files
ci-ai/bot
Tarik Moussa 1c84d7fc2a docs: document interactive ci-ai-bot + current Jetson backend
- README: new Feature F (interactive @ci-ai webhook bot) — table, tree, dedicated
  section (events, build, deploy pointer, env); reflect the Jetson (Ollama, coder,
  .103) as the live backend instead of "Claude now / Jetson later"
- flag that llm.py code defaults (anthropic / .20 / qwen-light) are stale vs. the
  configured ollama/coder/.103 — defaults refresh pending
- new bot/README.md

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 10:45:53 +02:00
..

ci-ai-bot — interaktiver Gitea-Webhook-Bot

Feature F der ci-ai-Schicht: ein schlanker FastAPI-Dienst, der auf Gitea-Webhooks reagiert und in Sekunden antwortet — ohne Runner, Clone oder NAT-Hairpin.

  • @ci-ai <Frage> in einem Issue/PR → Chat-Antwort im Thread (Thread- + Diff-Kontext).
  • pull_request opened/synchronized/reopened → idempotentes KI-Review.

Läuft als Container neben Gitea (web_network): Gitea-API intern über http://gitea:3000, KI-Backend (Jetson-Ollama) LAN-direkt. Wiederverwendet ../scripts/{llm,gitea_api,ai_review}.py.

Bauen (vom Repo-ROOT, nicht aus bot/)

docker build -f bot/Dockerfile -t ci-ai-bot:latest .

Der Dockerfile kopiert scripts/ + bot/app.py → Build-Context muss das Repo-Root sein.

Env

BOT_NAME · WEBHOOK_SECRET (HMAC) · GITEA_TOKEN · GITEA_API (intern http://gitea:3000/api/v1) · AI_PROVIDER / AI_MODEL / AI_BASE_URL (Jetson). Endpunkte: GET /healthz, POST /webhook.

Deployment

Als Service im docker_stack des Repos ansible-eulernest — Compose-Service, Vars, der nötige Gitea-ALLOWED_HOST_LIST-Fix, Webhook-Einrichtung und Troubleshooting stehen dort in docs/ci-ai-bot.md. Siehe auch die bot/-Sektion in der Haupt-README.