ReviewBot/README.md
2026-02-20 21:03:38 +03:00

2.0 KiB
Raw Blame History

CodeReview Bot (MVP)

Реализовано в текущем MVP:

  • Регистрация в Telegram: /register <git_email> <gitea_login>
  • Период недоступности: /away <YYYY-MM-DD> <YYYY-MM-DD>
  • Webhook Gitea по PR:
    • при создании PR без ревьюера бот назначает доступного участника с минимальной нагрузкой
    • ставит метку auto-assigned (best effort)
    • отправляет уведомление назначенному ревьюеру в личные сообщения Telegram
  • Ежедневное напоминание в общее время REMINDER_TIME (по умолчанию 09:00)
  • Техническая проверка сервиса: GET /health

Запуск

python -m venv .venv
. .venv/Scripts/activate
pip install -r requirements.txt
uvicorn main:app --host 0.0.0.0 --port 8080 --reload

Переменные окружения

  • TELEGRAM_BOT_TOKEN - обязательно
  • GITEA_BASE_URL - обязательно для назначения ревьюера, например https://git.example.com
  • GITEA_TOKEN - обязательно для назначения/меток
  • GITEA_WEBHOOK_SECRET - необязательно, но рекомендуется
  • REMINDER_TIME - необязательно, по умолчанию 09:00
  • AUTO_ASSIGNED_LABEL - необязательно, по умолчанию auto-assigned
  • ALLOW_SELF_ASSIGN - необязательно, по умолчанию false (для локального теста можно true)
  • BOT_DB_PATH - необязательно, по умолчанию botreviewer.sqlite3

Webhook-эндпоинты

  • Обновления Telegram: POST /telegram/webhook
  • Webhook Gitea: POST /gitea/webhook

Для Telegram укажите URL вашего сервиса с путем /telegram/webhook. Для Gitea включите события pull_request и задайте общий секрет.