41 lines
1.8 KiB
Markdown
41 lines
1.8 KiB
Markdown
|
|
Gitea Bot
|
||
|
|
----------
|
||
|
|
|
||
|
|
This repository contains a Python-based Gitea bot that listens for pull request events and posts an automated review when the bot account is requested as a reviewer. The bot uses a configurable Google AI Studio / Gemini REST endpoint to generate review text.
|
||
|
|
|
||
|
|
Files added:
|
||
|
|
- [gitea_bot/main.py](gitea_bot/main.py#L1) - FastAPI webhook server
|
||
|
|
- [gitea_bot/gitea_client.py](gitea_bot/gitea_client.py#L1) - minimal Gitea API helper
|
||
|
|
- [gitea_bot/gemini_client.py](gitea_bot/gemini_client.py#L1) - wrapper for Google AI Studio REST endpoint
|
||
|
|
- [Dockerfile](Dockerfile) - container image
|
||
|
|
- [requirements.txt](requirements.txt) - Python deps
|
||
|
|
|
||
|
|
Quick setup
|
||
|
|
|
||
|
|
1. Build the Docker image:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
docker build -t gitea-bot:latest .
|
||
|
|
```
|
||
|
|
|
||
|
|
2. Run the container (example):
|
||
|
|
|
||
|
|
```bash
|
||
|
|
docker run -e GITEA_API_URL="https://gitea.example.com/api/v1" \
|
||
|
|
-e GITEA_TOKEN="${GITEA_TOKEN}" \
|
||
|
|
-e BOT_USERNAME="your-bot-username" \
|
||
|
|
-e GOOGLE_AI_ENDPOINT="https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent" \
|
||
|
|
-e GOOGLE_API_KEY="YOUR_KEY" \
|
||
|
|
-p 8000:8000 gitea-bot:latest
|
||
|
|
```
|
||
|
|
|
||
|
|
3. Configure a webhook in your Gitea repository pointing to `http://<host>:8000/webhook` and enable the `pull_request` event. When you request a review from the bot account the service will fetch the PR diff and post a review comment.
|
||
|
|
|
||
|
|
Notes & configuration
|
||
|
|
- Set `GITEA_API_URL` to your Gitea API base (usually `https://gitea.example.com/api/v1`).
|
||
|
|
- The bot posts a single comment on the PR; for per-line review comments the Gitea API endpoint may differ and needs adjustment in `gitea_client.py`.
|
||
|
|
- Configure `GOOGLE_AI_ENDPOINT` and `GOOGLE_API_KEY` to point to your Generative AI Studio model endpoint.
|
||
|
|
|
||
|
|
Security
|
||
|
|
- Keep `GITEA_TOKEN` and `GOOGLE_API_KEY` secret and prefer injecting via environment or secret manager.
|