Add README.MD
This commit is contained in:
124
README.md
Normal file
124
README.md
Normal 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` для удобства.
|
||||
Reference in New Issue
Block a user