109 lines
6.6 KiB
Markdown
109 lines
6.6 KiB
Markdown
# [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 цифр) в начале.<br>
|
||
28882 - Прочие активности<br>
|
||
28882<br>
|
||
28882 Прочие активности<br><br>
|
||

|
||
|
||
### Запуск:
|
||
Клонируйте [репозиторий](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
|
||
```
|
||
И установите локальную команду запуска:
|
||
```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]` | Режим инициализации бд.<br>Подгружает с серверов теги, виды деятельности и Проекты (ДО) Ветро| `redmine-tracker -init-db` |
|
||
|
||
Также можно запускать напрямую из корня проекта:
|
||
```bash
|
||
python main.py
|
||
```
|
||
|
||
[Власов Эдуард](https://github.com/QuickLike)
|