6172921f5596fe5ed2947046085934aafed94d30
Redmine Tracker
Описание:
Скрипт для автоматического перенесения всех активностей с Clockify в Redmine. Сначала получаем все активности через Clockify API, затем заносим их через Redmine API.
Переменные
| Clockify | Redmine | Пример/Уточнение |
|---|---|---|
| Описание задачи (Description) | Комментарий | Уточнение у аналитика |
| Теги (Tags) | <Номер задачи> - <Название задачи> | 28882 - Прочие активности по Ветро |
| Задача (Task) | Название ДО | (Проект ветро): Страховые направления |
| Проект (Project) | Проект ветро | Ветро: (Задача/Название ДО) |
| Трекать/Не трекать (Billable/Non-billable) | <Занесена в Redmine или нет> | Если выбрано, то активность будет перенесена |
Тег обязательно должен содержать номер задачи (5 цифр) в начале.
28882 - Прочие активности
28882
28882 Прочие активности

Запуск:
Клонируйте репозиторий и перейдите в него в командной строке:
git clone ssh://git@git.sbps.ru:4567/e.vlasov/redmine_tracker.git
cd redmine_tracker
Создайте виртуальное окружение и активируйте его
python -m venv venv
Windows
venv/Scripts/activate
Linux/Ubuntu/MacOS
source venv/bin/activate
Обновите pip:
python -m pip install --upgrade pip
Установите зависимости:
pip install -r requirements.txt
Создайте файл .env и добавьте в него переменные:
nano .env
*REDMINE_TOKEN=<api_ключ_redmine>
*CLOCKIFY_TOKEN=<api_ключ_clockify>
?USER_ID=<user_id_clockify>
?WORKSPACE_ID=<workspace_id_clockify>
* - Обязательные.
? - Опциональные. Могут быть пустыми, но не должны отсутствовать вовсе.
Получение USER_ID и WORKSPACE_ID
- Простой способ: запустить скрипт с пустыми полями
USER_IDиWORKSPACE_IDв файле.env
и они автоматически подгрузятся и сохранятся локально в файле.
Этот способ может помочь в том случае, если у вас всего одно рабочее пространство и один пользователь в Clockify.
В других случаях рекомендую использовать второй способ. - Чуть сложнее: Сделать 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 |
Description
Languages
Python
100%