From f24cee77b724114f144abc3578c5da510a540f73 Mon Sep 17 00:00:00 2001 From: Artem Kokos Date: Mon, 19 Jan 2026 23:21:06 +0700 Subject: [PATCH] Add README.MD --- README.md | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..f7fc1c0 --- /dev/null +++ b/README.md @@ -0,0 +1,124 @@ +# 📊 Redmine Reporter + +Утилита командной строки для генерации отчётов по задачам в Redmine на основе **фактических временных затрат** за указанный период. +Группирует задачи по проекту и версии, поддерживает локализацию статусов и два формата вывода. + +--- + +## ✨ Возможности + +- Автоматический сбор всех задач, по которым вы вели учёт времени. +- Группировка по **проекту → версии**. +- Поддержка двух форматов вывода: + - `simple` — компактный текст (удобен для логов и скриптов) + - `tabulate` — красивая таблица в терминале +- Локализация статусов задач (например, «In Progress» → «В работе») +- Безопасная работа с учётными данными: пароль берётся **только из переменной окружения** +- Гибкая настройка через конфигурационный файл **и/или CLI** + +--- + +## 🚀 Установка + +```bash +cd elt-report +pip install . +``` + +> Требуется Python ≥ 3.8. + +--- + +## ⚙️ Настройка + +1. Скопируйте пример конфига: + ```bash + cp config.example.yaml config.yaml + ``` + +2. Отредактируйте `config.yaml`: + ```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. Установите пароль в переменную окружения: + ```bash + export REDMINE_PASSWORD='ваш_пароль' + ``` + +> 🔒 **Никогда не храните пароль в файлах!** + +--- + +## ▶️ Использование + +### Базовый запуск (всё из конфига): +```bash +redmine-report +``` + +### Переопределение через CLI: +```bash +redmine-report --from 2026-01-01 --to 2026-01-31 --format simple +``` + +### Все опции: +```bash +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. Исправить утечку памяти │ Решена │ │ +│ Фабричный тест │ │ 12350. Добавить проверку GPIO │ В работе │ │ +╘════════════════╧═══════════╧══════════════════════════════════╧═══════════╧════════════╛ +``` + +--- + +## 📦 Зависимости + +- [`python-redmine`](https://python-redmine.com/) +- [`tabulate`](https://pypi.org/project/tabulate/) +- [`PyYAML`](https://pyyaml.org/) + +--- + +## 📝 Автор + +© 2026 Eltex Co. Developed by Artem Kokos. + +--- + +> 💡 Совет: добавьте `export REDMINE_PASSWORD=...` в `~/.bashrc` или используйте `direnv` для удобства.