# [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://s686sas.storage.yandex.net/rdisk/6a2d5791ea3c702cb49f0aa4e3ddeb4b0a18ef534d33ac1577921796fa7f918e/68347d06/20rtLAu3u3ZLRqMT2Uf2DEa2hbpEsCZqsXeTwtuquk31yMeSEoyRF8DpBtv-P498wM53Dw2qo2ZNI7_n9S6eZQ==?uid=242286937&filename=Пример%20Clockify.png&disposition=inline&hash=&limit=0&content_type=image%2Fpng&owner_uid=242286937&fsize=75967&hid=87e0f79d157948ce5b962d68f96fda1f&media_type=image&tknv=v3&etag=79e05016a7ea094f07db2f502bda8c26&ts=6360ae8b4cd80&s=70ab255959c751cfa96c5dc6848f581bcca3178973ba9003652200278ac58720&pb=U2FsdGVkX1_lZF8bmjS5dNV_GgHPlP0wO1x1dpo0eIFQPRo2yX5WLuuV9Qa4yZo4n95LFujA-wW2-JGPlulKbcuL7h9fllNiDfwkYdHwSZY) ### Запуск: Клонируйте [репозиторий](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= ?TRIAL_END_DATE=<дата_середины_испытательного_срока> ``` \* - Обязательные.
? - Опциональные. Могут быть пустыми, но не должны отсутствовать вовсе. ## Получение `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`
## TRIAL_END_DATE Это дата, после которой ваши трудочасы должны заноситься в Redmine в полном количестве. Данная переменная больше актуальна для новичков, которым нужно делить трудочасы пополам.
До указанной даты трудочасы будут заноситься в Redmine наполовину. После этой даты - целиком.
## Запуск. ``` python main.py ``` ## Аргументы запуска | Аргумент | Описание | Пример использования | |-------------------|----------------------------------------------------------------------------------------------|--------------------------------------| | `-h [--help]` | Показать справку | `python main.py --help` | | `-s [--start]` | Дата начала парсинга активностей в формате гггг-мм-дд | `python main.py --start 2025-05-19` | | `-e [--end]` | Дата окончания парсинга активностей в формате гггг-мм-дд | `python main.py -e 2025-05-19` | | `-p [--page-size]`| Количество задач для вывода. Выведет последние n записей | `python main.py --page-size 15` | | `-d [--debug]` | Режим отладки. Не загружает трудочасы в Redmine | `python main.py -d` | | `-i [--init-db]` | Режим инициализации бд.
Подгружает с серверов теги, виды деятельности и Проекты (ДО) Ветро| `python main.py -init-db` | [Власов Эдуард](https://github.com/QuickLike)