From 7b7788edcc2f5b5010d010bb6a6566acd67f9bd9 Mon Sep 17 00:00:00 2001 From: Raykov-MS Date: Fri, 20 Feb 2026 21:30:12 +0300 Subject: [PATCH] MVP --- README.md | 43 ++++++++++++++++++++++++++++++++++++++++++- main.py | 2 +- 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f33863f..a06bada 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ python -m venv .venv . .venv/Scripts/activate pip install -r requirements.txt -uvicorn main:app --host 0.0.0.0 --port 8080 --reload +uvicorn main:app --host 0.0.0.0 --port 8080 --reload --env-file .env ``` ## Переменные окружения @@ -38,3 +38,44 @@ uvicorn main:app --host 0.0.0.0 --port 8080 --reload Для Telegram укажите URL вашего сервиса с путем `/telegram/webhook`. Для Gitea включите события `pull_request` и задайте общий секрет. + +## Локальная разработка через Tuna + +Если бот запущен локально, Gitea/Telegram не смогут достучаться до `localhost` без туннеля. + +1. Запустите бота: + +```bash +uvicorn main:app --host 0.0.0.0 --port 8080 --reload --env-file .env +``` + +2. Поднимите туннель в Tuna(https://my.tuna.am/) на локальный порт `8080` и получите публичный URL, например: + +```text +https://example.ru.tuna.am +``` + +3. Проверьте доступность сервиса: + +```text +https://example.ru.tuna.am/health +``` + +4. Настройте webhook в Gitea: +- Target URL: `https://example.ru.tuna.am/gitea/webhook` +- Method: `POST` +- Content Type: `application/json` +- Secret: тот же, что в `GITEA_WEBHOOK_SECRET` +- Events: `Pull Request` (Custom Events) + +5. Настройте webhook в Telegram: + +```text +https://api.telegram.org/bot/setWebhook?url=https://example.ru.tuna.am/telegram/webhook +``` + +6. Проверьте, что webhook установлен: + +```text +https://api.telegram.org/bot/getWebhookInfo +``` diff --git a/main.py b/main.py index 0e585a3..5d1ecd8 100644 --- a/main.py +++ b/main.py @@ -504,7 +504,7 @@ async def reminder_loop() -> None: rows = storage.get_open_assignments_for_reviewer(user.gitea_login) if not rows: continue - lines = [f"Ежедневное напоминание ({len(rows)} открыто):"] + lines = [f"Ежедневное напоминание ({len(rows)} открыто):"] for row in rows: created = row["created_at"][:10] lines.append(