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