Files
elt-report/README.md
2026-01-19 23:21:06 +07:00

4.9 KiB
Raw Permalink Blame History

📊 Redmine Reporter

Утилита командной строки для генерации отчётов по задачам в Redmine на основе фактических временных затрат за указанный период.
Группирует задачи по проекту и версии, поддерживает локализацию статусов и два формата вывода.


Возможности

  • Автоматический сбор всех задач, по которым вы вели учёт времени.
  • Группировка по проекту → версии.
  • Поддержка двух форматов вывода:
    • simple — компактный текст (удобен для логов и скриптов)
    • tabulate — красивая таблица в терминале
  • Локализация статусов задач (например, «In Progress» → «В работе»)
  • Безопасная работа с учётными данными: пароль берётся только из переменной окружения
  • Гибкая настройка через конфигурационный файл и/или CLI

🚀 Установка

cd elt-report
pip install .

Требуется Python ≥ 3.8.


⚙️ Настройка

  1. Скопируйте пример конфига:

    cp config.example.yaml config.yaml
    
  2. Отредактируйте 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"
    
  3. Установите пароль в переменную окружения:

    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 для удобства.