Update README.md

This commit is contained in:
Артём Кокос
2026-01-26 21:03:24 +07:00
parent b7f03666dc
commit dfb8d474b4

View File

@@ -1,7 +1,6 @@
# redmine-reporter # redmine-reporter
Инструмент для генерации отчётов по задачам в Redmine на основе ваших записей о затраченном времени. Инструмент для генерации отчётов по задачам в Redmine на основе ваших записей о затраченном времени.
> Предназначен для внутреннего использования в Eltex. Работает с `https://red.eltex.loc/`. > Предназначен для внутреннего использования в Eltex. Работает с `https://red.eltex.loc/`.
📄 **Лицензия**: [MIT](./LICENSE) — делайте что угодно. 📄 **Лицензия**: [MIT](./LICENSE) — делайте что угодно.
@@ -11,16 +10,17 @@
## 🔧 Возможности ## 🔧 Возможности
- Безопасная передача учётных данных через переменные окружения или `.env` - Безопасная передача учётных данных через переменные окружения или `.env`
- Два режима вывода: компактный (для копирования) и табличный (для просмотра)
- Группировка задач по проекту и версии - Группировка задач по проекту и версии
- Перевод статусов на русский язык - Поддержка нескольких форматов экспорта: **ODT**, **CSV**, **Markdown**, **HTML**
- Два режима вывода в консоль: табличный (красивая таблица) и компактный (для копирования)
- Перевод статусов задач на русский язык
- Автоматическое определение месяца отчёта по дате окончания периода (для **ODT**)
- Простой CLI с понятными аргументами - Простой CLI с понятными аргументами
- Поддержка настройки диапазона дат по умолчанию через `.env` - Поддержка настройки диапазона дат по умолчанию через `.env`
- Экспорт в ODT, CSV и Markdown
--- ---
## 🚀 Установка и настройка (продакшен) ## 🚀 Установка и настройка
### 1. Клонируйте репозиторий ### 1. Клонируйте репозиторий
@@ -29,7 +29,7 @@ git clone https://git.akokos.ru/artem.kokos/redmine-reporter.git
cd redmine-reporter cd redmine-reporter
``` ```
### 2. Создайте изолированное окружение и установите зависимости ### 2. Создайте виртуальное окружение и установите зависимости
```bash ```bash
python3 -m venv .venv python3 -m venv .venv
@@ -52,7 +52,7 @@ cat /etc/ssl/certs/ca-certificates.crt >> $(python -m certifi)
> ✅ Это безопасно: вы просто добавляете доверенные системные сертификаты к Python. > ✅ Это безопасно: вы просто добавляете доверенные системные сертификаты к Python.
> Не используйте `verify=False` — это создаёт уязвимость. > Не используйте `verify=False` — это создаёт уязвимость.
### 4. Настройте учётные данные и (опционально) даты ### 4. Настройте учётные данные
Создайте файл `.env` в корне проекта (**никогда не коммитьте его!**): Создайте файл `.env` в корне проекта (**никогда не коммитьте его!**):
@@ -74,12 +74,9 @@ export REDMINE_URL=https://red.eltex.loc/
export REDMINE_USER=ваш.логин export REDMINE_USER=ваш.логин
export REDMINE_PASSWORD=... export REDMINE_PASSWORD=...
export REDMINE_AUTHOR="Иванов Иван Иванович" export REDMINE_AUTHOR="Иванов Иван Иванович"
export DEFAULT_FROM_DATE=2026-01-01
export DEFAULT_TO_DATE=2026-01-31
``` ```
> 🔐 Рекомендуется использовать аккаунт с минимальными правами (только чтение time entries и задач). > 🔐 Рекомендуется использовать аккаунт с минимальными правами (только чтение time entries и задач).
> 💡 Если `DEFAULT_FROM_DATE` и `DEFAULT_TO_DATE` не заданы, используется встроенный диапазон: `2025-12-19--2026-01-31`.
--- ---
@@ -97,45 +94,52 @@ source .venv/bin/activate
# Отчёт за период по умолчанию (из .env или встроенный) # Отчёт за период по умолчанию (из .env или встроенный)
redmine-reporter redmine-reporter
# Отчёт за произвольный период (переопределяет .env) # Отчёт за произвольный период
redmine-reporter --date 2026-02-01--2026-02-28 redmine-reporter --date 2026-02-01--2026-02-28
# Компактный вывод (удобно копировать в письмо) # Компактный вывод (удобно копировать в письмо)
redmine-reporter --compact redmine-reporter --compact
# Экспорт в ODT с указанием автора (если не задано в .env) # Экспорт в ODT
redmine-reporter --output report.odt --author "Иванов Иван Иванович" redmine-reporter --output report.odt
# Экспорт в CSV
redmine-reporter --output report.csv
# Экспорт в Markdown
redmine-reporter --output report.md
# Экспорт в HTML
redmine-reporter --output report.html
``` ```
> 💡 **Автоматика в ODT-отчёте**: > 💡 **Автоматика в ODT-отчёте**:
> - Месяц в заголовке определяется **автоматически** по дате окончания периода (`to_date`). > - Месяц в заголовке определяется **автоматически** по дате окончания периода (`to_date`).
> Например: `2025-12-20--2026-01-15` → **«Январь»**. > Например: `2025-12-20--2026-01-15` → **«Январь»**.
> - Имя автора берётся из переменной окружения `REDMINE_AUTHOR` (в `.env`) или CLI-аргумента `--author`. > - Имя автора берётся из `REDMINE_AUTHOR` (в `.env`) или CLI-аргумента `--author`.
> - Первая пустая строка из шаблона `template.odt` **автоматически удаляется**.
Пример содержимого `.env` с автором: Пример содержимого `.env`:
```ini ```ini
REDMINE_URL=https://red.eltex.loc/ REDMINE_URL=https://red.eltex.loc/
REDMINE_USER=ваш.логин REDMINE_USER=ivanov.ivan
REDMINE_PASSWORD=ваш_пароль REDMINE_PASSWORD=supersecret
REDMINE_AUTHOR=Иванов Иван Иванович REDMINE_AUTHOR=Иванов Иван
DEFAULT_FROM_DATE=2026-01-01 DEFAULT_FROM_DATE=2026-01-01
DEFAULT_TO_DATE=2026-01-31 DEFAULT_TO_DATE=2026-01-31
``` ```
Пример вывода в ODT (заголовок):
> **Иванов Иван Иванович. Отчёт за месяц Январь.**
Пример консольного вывода: Пример консольного вывода:
``` ```
✅ Total issues: 7 [2026-01-01--2026-01-31] ✅ Total issues: 7 [2026-01-01--2026-01-31]
╒════════════╤═══════════╤══════════════════════════════════════╤═══════════╤════════════╕ ╒════════════╤═══════════╤══════════════════════════════════════╤═══════════╤════════════╕
│ Проект │ Версия │ Задача │ Статус │ Затрачено │ │ Проект │ Версия │ Задача │ Статус │ Затрачено │
╞════════════╪═══════════╪══════════════════════════════════════╪═══════════╪════════════╡ ╞════════════╪═══════════╪══════════════════════════════════════╪═══════════╪════════════╡
│ Камеры │ v2.5.0 │ 12345. Поддержка нового датчика │ В работе │ 2.00h │ Камеры │ v2.5.0 │ 12345. Поддержка нового датчика │ В работе │ 2ч 30м
│ │ │ 12346. Исправить утечку памяти │ Решена │ 2.00h │ │ │ 12346. Исправить утечку памяти │ Решена │ 2ч
│ ПО │ <N/A> │ 12350. Обновить документацию │ Ожидание │ 12.00h │ ПО │ <N/A> │ 12350. Обновить документацию │ Ожидание │ 12ч
╘════════════╧═══════════╧══════════════════════════════════════╧═══════════╧════════════╛ ╘════════════╧═══════════╧══════════════════════════════════════╧═══════════╧════════════╛
``` ```