Update README.md
This commit is contained in:
122
README.md
122
README.md
@@ -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.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user