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

|
||
|
||
### Запуск:
|
||
Склонируйте репозиторий командой из раздела «Code»/«Клонировать» на странице проекта, затем перейдите в его каталог:
|
||
```bash
|
||
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
|
||
```
|
||
И установите локальную команду запуска:
|
||
```bash
|
||
pip install -e .
|
||
```
|
||
Создайте файл .env и добавьте в него переменные:
|
||
```bash
|
||
nano .env
|
||
```
|
||
```env
|
||
*REDMINE_TOKEN=<api_ключ_redmine>
|
||
*CLOCKIFY_TOKEN=<api_ключ_clockify>
|
||
?USER_ID=<user_id_clockify>
|
||
?WORKSPACE_ID=<workspace_id_clockify>
|
||
?TRIAL_END_DATE=<дата_середины_испытательного_срока>
|
||
```
|
||
\* - Обязательные.<br>
|
||
? - Опциональные. Могут быть пустыми, но не должны отсутствовать вовсе.
|
||
|
||
## Получение `USER_ID` и `WORKSPACE_ID`
|
||
1. Простой способ: запустить скрипт с пустыми полями `USER_ID` и `WORKSPACE_ID` в файле `.env`
|
||
<br>и они автоматически подгрузятся и сохранятся локально в файле.<br>
|
||
Этот способ может помочь в том случае, если у вас всего одно рабочее пространство и один пользователь в Clockify.<br>
|
||
В других случаях рекомендую использовать второй способ.
|
||
2. Чуть сложнее: Сделать GET-запроc по эндпоинту `https://app.clockify.me/api/v1/user` и указать ваш токен в заголовках запроса.
|
||
{"X-API-KEY": "ВАШ_ТОКЕН"}<br>
|
||
В теле ответа вы получите нужные переменные:<br>
|
||
id - это `USER_ID`<br>
|
||
activeWorkspace - это `WORKSPACE_ID`
|
||
<br>
|
||
## TRIAL_END_DATE
|
||
Это дата, после которой ваши трудочасы должны заноситься в Redmine в полном количестве. Данная переменная больше актуальна для новичков, которым нужно делить трудочасы пополам.<br>
|
||
До указанной даты трудочасы будут заноситься в Redmine наполовину. После этой даты - целиком.<br>
|
||
## Запуск.
|
||
|
||
```
|
||
redmine-tracker
|
||
```
|
||
|
||
## Аргументы запуска
|
||
| Аргумент | Описание | Пример использования |
|
||
|-------------------|----------------------------------------------------------------------------------------------|--------------------------------------|
|
||
| `-h [--help]` | Показать справку | `redmine-tracker --help` |
|
||
| `-s [--start]` | Дата начала парсинга активностей в формате гггг-мм-дд | `redmine-tracker --start 2025-05-19` |
|
||
| `-e [--end]` | Дата окончания парсинга активностей в формате гггг-мм-дд | `redmine-tracker -e 2025-05-19` |
|
||
| `-p [--page-size]`| Количество задач для вывода. Выведет последние n записей | `redmine-tracker --page-size 15` |
|
||
| `-d [--debug]` | Режим отладки. Не загружает трудочасы в Redmine | `redmine-tracker -d` |
|
||
| `--dry-run` | Предпросмотр без сохранения активностей и отправки трудочасов | `redmine-tracker --dry-run` |
|
||
| `-i [--init-db]` | Выполняет миграции и обновляет справочники без отправки трудочасов в Redmine | `redmine-tracker --init-db` |
|
||
|
||
При запуске с `--init-db` файлы из каталога `migrations` выполняются по имени.
|
||
Успешно применённые миграции повторно не запускаются: их имя и время выполнения
|
||
сохраняются в таблице `migration`.
|
||
|
||
Также можно запускать напрямую из корня проекта:
|
||
```bash
|
||
python main.py
|
||
```
|
||
|
||
[Власов Эдуард](https://github.com/QuickLike)
|