# [Redmine Tracker](https://git.sbps.ru/e.vlasov/redmine_tracker)
## Описание:
Скрипт для автоматического перенесения всех активностей с Clockify в Redmine.
Сначала получаем все активности через Clockify API, затем заносим их через Redmine API.
## Переменные
|Clockify|Redmine|Пример/Уточнение|
|--------|-------|------|
|Описание задачи (Description)|Комментарий|Уточнение у аналитика|
|Теги (Tags)|<Номер задачи> - <Название задачи>|28882 - Прочие активности по Ветро|
|Задача (Task)|Название ДО|(Проект ветро): Страховые направления|
|Проект (Project)|Проект ветро|Ветро: (Задача/Название ДО)|
|Трекать/Не трекать (Billable/Non-billable)|<Занесена в Redmine или нет>|Если выбрано, то активность будет перенесена|

Тег обязательно должен содержать номер задачи (5 цифр) в начале.
28882 - Прочие активности
28882
28882 Прочие активности
### Запуск:
Клонируйте [репозиторий](https://git.sbps.ru/e.vlasov/redmine_tracker) и перейдите в него в командной строке:
```bash
git clone ssh://git@git.sbps.ru:4567/e.vlasov/redmine_tracker.git
cd redmine_tracker
```
Создайте виртуальное окружение и активируйте его
```bash
python -m venv venv
```
Windows
```bash
venv/Scripts/activate
```
Linux/Ubuntu/MacOS
```bash
source venv/bin/activate
```
Обновите pip:
```bash
python -m pip install --upgrade pip
```
Установите зависимости:
```bash
pip install -r requirements.txt
```
Создайте файл .env и добавьте в него переменные:
```bash
nano .env
```
```env
*REDMINE_TOKEN=
*CLOCKIFY_TOKEN=
?USER_ID=
?WORKSPACE_ID=
```
\* - Обязательные.
? - Опциональные. Могут быть пустыми, но не должны отсутствовать вовсе.
## Получение `USER_ID` и `WORKSPACE_ID`
1. Простой способ: запустить скрипт с пустыми полями `USER_ID` и `WORKSPACE_ID` в файле `.env`
и они автоматически подгрузятся и сохранятся локально в файле.
Этот способ может помочь в том случае, если у вас всего одно рабочее пространство и один пользователь в Clockify.
В других случаях рекомендую использовать второй способ.
2. Чуть сложнее: Сделать GET-запроc по эндпоинту `https://app.clockify.me/api/v1/user` и указать ваш токен в заголовках запроса.
{"X-API-KEY": "ВАШ_ТОКЕН"}
В теле ответа вы получите нужные переменные:
id - это `USER_ID`
activeWorkspace - это `WORKSPACE_ID`
## Запуск.
```
python track.py
```
## Аргументы запуска
| Аргумент | Описание | Пример использования |
|-------------------|----------------------------------------------------------------------------------------------|--------------------------------------|
| `-h [--help]` | Показать справку | `python track.py --help` |
| `-s [--start]` | Дата начала парсинга активностей в формате гггг-мм-дд | `python track.py --start 2025-05-19` |
| `-e [--end]` | Дата окончания парсинга активностей в формате гггг-мм-дд | `python track.py -e 2025-05-19` |
| `-p [--page-size]`| Количество задач для вывода. Выведет последние n записей | `python track.py --page-size 15` |
| `-d [--debug]` | Режим отладки. Не загружает трудочасы в Redmine | `python track.py -d` |
| `-i [--init-db]` | Режим инициализации бд.
Подгружает с серверов теги, виды деятельности и Проекты (ДО) Ветро| `python track.py -init-db` |
[Власов Эдуард](https://github.com/QuickLike)