# redmine-reporter Инструмент для генерации отчётов по задачам в Redmine на основе ваших записей о затраченном времени. > Предназначен для внутреннего использования в Eltex. Работает с `https://red.eltex.loc/`. 📄 **Лицензия**: [MIT](./LICENSE) — делайте что угодно. --- ## 🔧 Возможности - Безопасная передача учётных данных через переменные окружения или `.env` - Два режима вывода: компактный (для копирования) и табличный (для просмотра) - Группировка задач по проекту и версии - Перевод статусов на русский язык - Простой CLI с понятными аргументами - Поддержка настройки диапазона дат по умолчанию через `.env` --- ## 🚀 Установка и настройка (продакшен) ### 1. Клонируйте репозиторий ```bash git clone https://git.akokos.ru/artem.kokos/redmine-reporter.git cd redmine-reporter ``` ### 2. Создайте изолированное окружение и установите зависимости ```bash python3 -m venv .venv source .venv/bin/activate pip install --upgrade pip pip install . ``` > 💡 Установка в виртуальное окружение — стандарт для Python-инструментов. Это безопасно и не влияет на систему. ### 3. Настройте доверие к корпоративному сертификату (обязательно!) По умолчанию Python использует собственный набор сертификатов (`certifi`), который **не включает** внутренние CA Eltex. Чтобы избежать ошибки `CERTIFICATE_VERIFY_FAILED`, выполните **один раз**: ```bash cat /etc/ssl/certs/ca-certificates.crt >> $(python -m certifi) ``` > ✅ Это безопасно: вы просто добавляете доверенные системные сертификаты к Python. > ❌ Не используйте `verify=False` — это создаёт уязвимость. ### 4. Настройте учётные данные и (опционально) даты Создайте файл `.env` в корне проекта (**никогда не коммитьте его!**): ```ini REDMINE_URL=https://red.eltex.loc/ REDMINE_USER=ваш.логин REDMINE_PASSWORD=ваш_пароль # Опционально: диапазон дат по умолчанию DEFAULT_FROM_DATE=2026-01-01 DEFAULT_TO_DATE=2026-01-31 ``` Альтернатива — задать переменные вручную: ```bash export REDMINE_URL=https://red.eltex.loc/ export REDMINE_USER=ваш.логин export REDMINE_PASSWORD=... export DEFAULT_FROM_DATE=2026-01-01 export DEFAULT_TO_DATE=2026-01-31 ``` > 🔐 Рекомендуется использовать аккаунт с минимальными правами (только чтение time entries и задач). > 💡 Если `DEFAULT_FROM_DATE` и `DEFAULT_TO_DATE` не заданы, используется встроенный диапазон: `2025-12-19--2026-01-31`. --- ## ▶️ Использование Перед каждым запуском активируйте окружение: ```bash source .venv/bin/activate ``` Затем: ```bash # Отчёт за период по умолчанию (из .env или встроенный) redmine-reporter # Отчёт за произвольный период (переопределяет .env) redmine-reporter --date 2026-02-01--2026-02-28 # Компактный вывод (удобно копировать в письмо) redmine-reporter --compact ``` Пример вывода: ``` ✅ Total issues: 7 [2026-01-01--2026-01-31] ╒════════════╤═══════════╤══════════════════════════════════════╤═══════════╤════════════╕ │ Проект │ Версия │ Задача │ Статус │ Затрачено │ ╞════════════╪═══════════╪══════════════════════════════════════╪═══════════╪════════════╡ │ Камеры │ v2.5.0 │ 12345. Поддержка нового датчика │ В работе │ 2.00h │ │ │ │ 12346. Исправить утечку памяти │ Решена │ 2.00h │ │ ПО │ │ 12350. Обновить документацию │ Ожидание │ 12.00h │ ╘════════════╧═══════════╧══════════════════════════════════════╧═══════════╧════════════╛ ``` --- ## 🛠 Разработка Для участия в разработке: ```bash pip install -e ".[dev]" pytest black . isort . ``` --- > 🔒 **Важно**: > - Никогда не коммитьте `.env`, пароли или логины. > - Файл `.gitignore` уже исключает все чувствительные артефакты. > - Инструмент работает только в режиме **чтения** — он не может изменять данные в Redmine.