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

125 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 📊 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. Исправить утечку памяти │ Решена │ │
│ Фабричный тест │ <N/A> │ 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` для удобства.