📊 Redmine Reporter
Утилита командной строки для генерации отчётов по задачам в Redmine на основе фактических временных затрат за указанный период.
Группирует задачи по проекту и версии, поддерживает локализацию статусов и два формата вывода.
✨ Возможности
- Автоматический сбор всех задач, по которым вы вели учёт времени.
- Группировка по проекту → версии.
- Поддержка двух форматов вывода:
simple— компактный текст (удобен для логов и скриптов)tabulate— красивая таблица в терминале
- Локализация статусов задач (например, «In Progress» → «В работе»)
- Безопасная работа с учётными данными: пароль берётся только из переменной окружения
- Гибкая настройка через конфигурационный файл и/или CLI
🚀 Установка
cd elt-report
pip install .
Требуется Python ≥ 3.8.
⚙️ Настройка
-
Скопируйте пример конфига:
cp config.example.yaml config.yaml -
Отредактируйте
config.yaml:redmine: url: "https://red.eltex.loc/" username: "your_login" password_env: "REDMINE_PASSWORD" # имя переменной окружения report: date_from: "2025-12-19" date_to: "2026-01-31" output_format: "tabulate" -
Установите пароль в переменную окружения:
export REDMINE_PASSWORD='ваш_пароль'
🔒 Никогда не храните пароль в файлах!
▶️ Использование
Базовый запуск (всё из конфига):
redmine-report
Переопределение через CLI:
redmine-report --from 2026-01-01 --to 2026-01-31 --format simple
Все опции:
redmine-report --help
Поддерживаемые флаги:
--config PATH— путь к YAML-конфигу (по умолчанию:config.yaml)--from YYYY-MM-DD— начальная дата--to YYYY-MM-DD— конечная дата--format [simple|tabulate]— формат вывода
CLI-аргументы имеют приоритет над значениями в конфиге.
🛡️ Безопасность
- Пароль никогда не передаётся в аргументах и не сохраняется в файлах.
- Используется только через
os.getenv(). - Рекомендуется использовать
.env-файлы или менеджеры секретов в CI/CD.
🧪 Пример вывода (--format tabulate)
╒════════════════╤═══════════╤══════════════════════════════════╤═══════════╤════════════╕
│ Проект │ Версия │ Задача │ Статус │ Затрачено │
╞════════════════╪═══════════╪══════════════════════════════════╪═══════════╪════════════╡
│ Камера │ v2.1 │ 12345. Реализовать PTZ │ В работе │ │
│ │ │ 12346. Исправить утечку памяти │ Решена │ │
│ Фабричный тест │ <N/A> │ 12350. Добавить проверку GPIO │ В работе │ │
╘════════════════╧═══════════╧══════════════════════════════════╧═══════════╧════════════╛
📦 Зависимости
📝 Автор
© 2026 Eltex Co. Developed by Artem Kokos.
💡 Совет: добавьте
export REDMINE_PASSWORD=...в~/.bashrcили используйтеdirenvдля удобства.
Description
Languages
Python
100%