Стартовый шаблон монорепозитория под 10 телеграм-ботов на aiogram 3.
Готовы два бота: echo_bot (базовый пример) и questionnaire_bot (FSM).
pip install -U pip setuptools wheel
# опционально
pip install -U pip-toolspython -m venv .venv
# Windows: .venv\Scripts\activate
# macOS/Linux: source .venv/bin/activate
pip install -U pip setuptools wheel
pip install -e ".[dev]"
cd bots/echo_bot && python -m app- Консоль — цветной вывод (если установлен
colorlog). - Файл с ротацией по дням —
logs/bot.log(по умолчанию), хранитсяLOG_BACKUP_DAYSдней.
Переменные окружения:
LOG_LEVEL=INFO
LOG_FILE=logs/bot.log
LOG_BACKUP_DAYS=7Установка colorlog (опционально):
pip install colorlog- Python 3.11+
- aiogram 3
- pydantic 2 + pydantic-settings
- python-dotenv
- httpx
- pre-commit (Ruff + Black хуки)
- pytest (юнит-тесты)
В репозитории уже есть workflow .github/workflows/ci.yml, который при каждом push/PR:
- ставит зависимости (
pip install -e ".[dev]"), - гоняет Ruff (
ruff check .), - проверяет формат Black (
black --check .), - запускает pytest (пока тестов нет, этап «зелёный»).
Settings → Version Control → Commit → Before Commit:
-
включи Run Git Hooks (если доступно), либо добавь External Tool на:
pre-commit run --files $ChangedFiles$ -
при желании включи Run tests и Run inspection.
В проекте настроены Ruff (линтер) и Black (форматтер), а также pre-commit хуки.
make setup
# или вручную:
# pip install -U pre-commit ruff black
# pre-commit installmake lintmake fixmake testmake ciВсе конфигурации Ruff и Black лежат в
pyproject.toml..editorconfigсодержит только базовые настройки редактора.
tg-bots-portfolio-starter/
bots/
echo_bot/
questionnaire_bot/
libs/
common/
.github/workflows/ci.yml
Makefile
pyproject.toml
.pre-commit-config.yaml
.editorconfig
.gitignore
README.md