30 lines
1.3 KiB
Markdown
30 lines
1.3 KiB
Markdown
# 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/`)
|
|
|
|
```bash
|
|
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](../README.md).
|