.
2025-05-19 14:23:07 +03:00

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>
?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 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
No description provided
Readme 534 KiB
Languages
Python 100%