Add README.MD

This commit is contained in:
Artem Kokos
2026-01-19 23:21:06 +07:00
parent d1b1648940
commit f24cee77b7

124
README.md Normal file
View File

@@ -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. Исправить утечку памяти │ Решена │ │
│ Фабричный тест │ <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` для удобства.