From dfb8d474b4df1a213debddee09cd606e4a73f4de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D1=80=D1=82=D1=91=D0=BC=20=D0=9A=D0=BE=D0=BA=D0=BE?= =?UTF-8?q?=D1=81?= Date: Mon, 26 Jan 2026 21:03:24 +0700 Subject: [PATCH] Update README.md --- README.md | 62 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 33 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index ca1b0da..34e7230 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ # redmine-reporter -Инструмент для генерации отчётов по задачам в Redmine на основе ваших записей о затраченном времени. - +Инструмент для генерации отчётов по задачам в Redmine на основе ваших записей о затраченном времени. > Предназначен для внутреннего использования в Eltex. Работает с `https://red.eltex.loc/`. 📄 **Лицензия**: [MIT](./LICENSE) — делайте что угодно. @@ -11,16 +10,17 @@ ## 🔧 Возможности - Безопасная передача учётных данных через переменные окружения или `.env` -- Два режима вывода: компактный (для копирования) и табличный (для просмотра) - Группировка задач по проекту и версии -- Перевод статусов на русский язык +- Поддержка нескольких форматов экспорта: **ODT**, **CSV**, **Markdown**, **HTML** +- Два режима вывода в консоль: табличный (красивая таблица) и компактный (для копирования) +- Перевод статусов задач на русский язык +- Автоматическое определение месяца отчёта по дате окончания периода (для **ODT**) - Простой CLI с понятными аргументами - Поддержка настройки диапазона дат по умолчанию через `.env` -- Экспорт в ODT, CSV и Markdown --- -## 🚀 Установка и настройка (продакшен) +## 🚀 Установка и настройка ### 1. Клонируйте репозиторий @@ -29,7 +29,7 @@ git clone https://git.akokos.ru/artem.kokos/redmine-reporter.git cd redmine-reporter ``` -### 2. Создайте изолированное окружение и установите зависимости +### 2. Создайте виртуальное окружение и установите зависимости ```bash python3 -m venv .venv @@ -52,7 +52,7 @@ cat /etc/ssl/certs/ca-certificates.crt >> $(python -m certifi) > ✅ Это безопасно: вы просто добавляете доверенные системные сертификаты к Python. > ❌ Не используйте `verify=False` — это создаёт уязвимость. -### 4. Настройте учётные данные и (опционально) даты +### 4. Настройте учётные данные Создайте файл `.env` в корне проекта (**никогда не коммитьте его!**): @@ -74,12 +74,9 @@ export REDMINE_URL=https://red.eltex.loc/ export REDMINE_USER=ваш.логин export REDMINE_PASSWORD=... export REDMINE_AUTHOR="Иванов Иван Иванович" -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`. --- @@ -97,45 +94,52 @@ source .venv/bin/activate # Отчёт за период по умолчанию (из .env или встроенный) redmine-reporter -# Отчёт за произвольный период (переопределяет .env) +# Отчёт за произвольный период redmine-reporter --date 2026-02-01--2026-02-28 # Компактный вывод (удобно копировать в письмо) redmine-reporter --compact -# Экспорт в ODT с указанием автора (если не задано в .env) -redmine-reporter --output report.odt --author "Иванов Иван Иванович" +# Экспорт в ODT +redmine-reporter --output report.odt + +# Экспорт в CSV +redmine-reporter --output report.csv + +# Экспорт в Markdown +redmine-reporter --output report.md + +# Экспорт в HTML +redmine-reporter --output report.html ``` > 💡 **Автоматика в ODT-отчёте**: -> - Месяц в заголовке определяется **автоматически** по дате окончания периода (`to_date`). +> - Месяц в заголовке определяется **автоматически** по дате окончания периода (`to_date`). > Например: `2025-12-20--2026-01-15` → **«Январь»**. -> - Имя автора берётся из переменной окружения `REDMINE_AUTHOR` (в `.env`) или CLI-аргумента `--author`. -> - Первая пустая строка из шаблона `template.odt` **автоматически удаляется**. +> - Имя автора берётся из `REDMINE_AUTHOR` (в `.env`) или CLI-аргумента `--author`. -Пример содержимого `.env` с автором: +Пример содержимого `.env`: ```ini REDMINE_URL=https://red.eltex.loc/ -REDMINE_USER=ваш.логин -REDMINE_PASSWORD=ваш_пароль -REDMINE_AUTHOR=Иванов Иван Иванович +REDMINE_USER=ivanov.ivan +REDMINE_PASSWORD=supersecret +REDMINE_AUTHOR=Иванов Иван + DEFAULT_FROM_DATE=2026-01-01 DEFAULT_TO_DATE=2026-01-31 ``` -Пример вывода в ODT (заголовок): -> **Иванов Иван Иванович. Отчёт за месяц Январь.** - Пример консольного вывода: + ``` ✅ Total issues: 7 [2026-01-01--2026-01-31] ╒════════════╤═══════════╤══════════════════════════════════════╤═══════════╤════════════╕ │ Проект │ Версия │ Задача │ Статус │ Затрачено │ ╞════════════╪═══════════╪══════════════════════════════════════╪═══════════╪════════════╡ -│ Камеры │ v2.5.0 │ 12345. Поддержка нового датчика │ В работе │ 2.00h │ -│ │ │ 12346. Исправить утечку памяти │ Решена │ 2.00h │ -│ ПО │ │ 12350. Обновить документацию │ Ожидание │ 12.00h │ +│ Камеры │ v2.5.0 │ 12345. Поддержка нового датчика │ В работе │ 2ч 30м │ +│ │ │ 12346. Исправить утечку памяти │ Решена │ 2ч │ +│ ПО │ │ 12350. Обновить документацию │ Ожидание │ 12ч │ ╘════════════╧═══════════╧══════════════════════════════════════╧═══════════╧════════════╛ ``` @@ -154,7 +158,7 @@ isort . --- -> 🔒 **Важно**: +> 🔒 **Важно**: > - Никогда не коммитьте `.env`, пароли или логины. -> - Файл `.gitignore` уже исключает все чувствительные артефакты. +> - Файл `.gitignore` уже исключает все чувствительные артефакты. > - Инструмент работает только в режиме **чтения** — он не может изменять данные в Redmine.