REVIEW_MAX_COMMENTS was only mapped to REVIEW__MAX_INLINE_COMMENTS which only limits comments per-file. Added REVIEW__MAX_CONTEXT_COMMENTS mapping to also limit total comments per MR, which is what users expected. Also added missing LLM__META__TEMPERATURE env var mapping.
2.3 KiB
2.3 KiB
Gitea AI Webhook Bot
A webhook-based service that automatically generates AI code reviews for Gitea Pull Requests using xai-review.
Features
- Integrated with AI: Uses advanced LLMs for code analysis.
- Zero-config per repository: Works via a single Gitea System Webhook (or per-repo webhook).
- Custom LLM Support: Configuring it to use OpenAI, Ollama, vLLM, or any OpenAI-compatible endpoint.
- Secure: Runs in an isolated Docker container with strict context passed via environment variables.
Deployment
Docker Compose
Run the container using the provided compose.yaml.
docker compose up -d
Configuration (Environment Variables)
Create a .env file with the following variables:
| Variable | Required | Description | Default |
|---|---|---|---|
GITEA_TOKEN |
Yes | A Gitea Access Token. Required permissions: repository (Read), issue (Read and Write). |
|
GITEA_API_URL |
Yes | Full URL to your Gitea API (e.g., https://git.example.com/api/v1). |
|
PORT |
No | Host port to expose the webhook server on. | 3000 |
REVIEW_MAX_COMMENTS |
No | Maximum number of AI comments (per-file for inline, total for context review). Set to 0 to disable. |
3 |
OPENAI_API_KEY |
Yes | API Key for your LLM provider. Use dummy for local models if no auth needed. |
|
OPENAI_BASE_URL |
No | Base URL for the LLM API. Set this for Ollama/vLLM (e.g. http://host.docker.internal:11434/v1/). |
https://api.openai.com/v1/ |
LLM_MODEL |
No | The model name to request (e.g. gpt-4o, llama3.1). |
gpt-4o |
LLM_TEMPERATURE |
No | The creativity of the model (0.0 - 1.0). | 0.2 |
LLM_PROVIDER |
No | The XAI provider type. Use OPENAI for most compatible services. |
OPENAI |
Example .env (Ollama)
GITEA_TOKEN=da39a3ee5e6b4b0d3255bfef95601890afd80709
OPENAI_API_KEY=dummy
OPENAI_BASE_URL=http://host.docker.internal:11434/v1/
LLM_MODEL=llama3.1
Setup in Gitea
- Navigate to Site Administration > Webhooks (for all repos) OR Repo Settings > Webhooks.
- Add a Gitea webhook.
- Target URL:
http://<container-ip>:3000/webhook(e.g.,http://gitea-ai-review:3000/webhook). - HTTP Method:
POST. - Trigger On: Custom Events -> Pull Request.