Update README.md

This commit is contained in:
Кокос Артем Николаевич
2026-01-20 10:26:49 +07:00
parent c0300e71fb
commit 29abaa2444

122
README.md
View File

@@ -1,57 +1,113 @@
# redmine-reporter # redmine-reporter
Internal tool to generate Redmine issue reports based on your time entries. Инструмент для генерации отчётов по задачам в Redmine на основе ваших записей о затраченном времени.
## Features > Предназначен для внутреннего использования в Eltex. Работает с `https://red.eltex.loc/`.
- Secure credential handling via environment variables ---
- Compact or fancy table output
- Grouping by project and version
- Status translation to Russian
- CLI with intuitive arguments
## Installation ## 🔧 Возможности
- Безопасная передача учётных данных через переменные окружения или `.env`
- Два режима вывода: компактный (для копирования) и табличный (для просмотра)
- Группировка задач по проекту и версии
- Перевод статусов на русский язык
- Простой CLI с понятными аргументами
---
## 🚀 Установка и настройка (продакшен)
### 1. Клонируйте репозиторий
```bash ```bash
git clone https://your-gitea/redmine-reporter.git git clone https://git.akokos.ru/artem.kokos/redmine-reporter.git
cd redmine-reporter cd redmine-reporter
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
``` ```
## Configuration ### 2. Создайте изолированное окружение и установите зависимости
Create `.env` (not committed!): ```bash
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install .
```
> 💡 Установка в виртуальное окружение — стандарт для Python-инструментов. Это безопасно и не влияет на систему.
### 3. Настройте доверие к корпоративному сертификату (обязательно!)
По умолчанию Python использует собственный набор сертификатов (`certifi`), который **не включает** внутренние CA Eltex.
Чтобы избежать ошибки `CERTIFICATE_VERIFY_FAILED`, выполните **один раз**:
```bash
cat /etc/ssl/certs/ca-certificates.crt >> $(python -m certifi)
```
> ✅ Это безопасно: вы просто добавляете доверенные системные сертификаты к Python.
> Не используйте `verify=False` — это создаёт уязвимость.
### 4. Настройте учётные данные
Создайте файл `.env` в корне проекта (**никогда не коммитьте его!**):
```ini ```ini
REDMINE_URL=https://red.eltex.loc/ REDMINE_URL=https://red.eltex.loc/
REDMINE_USER=artem.kokos REDMINE_USER=ваш.логин
REDMINE_PASSWORD=your_password_here REDMINE_PASSWORD=ваш_пароль
``` ```
Or export in shell: Альтернатива — задать переменные вручную:
```bash ```bash
export REDMINE_URL=https://red.eltex.loc/ export REDMINE_URL=https://red.eltex.loc/
export REDMINE_USER=artem.kokos export REDMINE_USER=ваш.логин
export REDMINE_PASSWORD=... export REDMINE_PASSWORD=...
``` ```
## Usage > 🔐 Рекомендуется использовать аккаунт с минимальными правами (только чтение time entries и задач).
---
## ▶️ Использование
Перед каждым запуском активируйте окружение:
```bash ```bash
# Default date range source .venv/bin/activate
```
Затем:
```bash
# Отчёт за период по умолчанию
redmine-reporter redmine-reporter
# Custom date range # Отчёт за произвольный период
redmine-reporter --date 2025-12-01--2026-01-31 redmine-reporter --date 2026-01-01--2026-01-31
# Compact mode # Компактный вывод (удобно копировать в письмо)
redmine-reporter --compact redmine-reporter --compact
``` ```
## Development Пример вывода:
```
✅ Total issues: 7 [2026-01-01--2026-01-31]
╒════════════╤═══════════╤══════════════════════════════════════╤═══════════╤════════════╕
│ Проект │ Версия │ Задача │ Статус │ Затрачено │
╞════════════╪═══════════╪══════════════════════════════════════╪═══════════╪════════════╡
│ Камеры │ v2.5.0 │ 12345. Поддержка нового датчика │ В работе │ │
│ │ │ 12346. Исправить утечку памяти │ Решена │ │
│ ПО │ <N/A> │ 12350. Обновить документацию │ Ожидание │ │
╘════════════╧═══════════╧══════════════════════════════════════╧═══════════╧════════════╛
```
---
## 🛠 Разработка
Для участия в разработке:
```bash ```bash
pip install -e ".[dev]" pip install -e ".[dev]"
@@ -60,17 +116,9 @@ black .
isort . isort .
``` ```
> 🔒 Never commit `.env` or credentials! ---
### Production SSL Setup (for internal Redmine) > 🔒 **Важно**:
> - Никогда не коммитьте `.env`, пароли или логины.
If you get `CERTIFICATE_VERIFY_FAILED`, your corporate CA is not trusted by Python's `certifi`. > - Файл `.gitignore` уже исключает все чувствительные артефакты.
> - Инструмент работает только в режиме **чтения** — он не может изменять данные в Redmine.
Fix it once per environment:
```bash
source .venv/bin/activate
cat /etc/ssl/certs/ca-certificates.crt >> $(python -m certifi)
```
> This appends system CA bundle to Python's certificate store. Safe and secure.