Files
redmine_tracker/README.MD

108 lines
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# [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://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
```
И установите локальную команду запуска:
```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` |
| `-i [--init-db]` | Режим инициализации бд.<br>Подгружает с серверов теги, виды деятельности и Проекты (ДО) Ветро| `redmine-tracker -init-db` |
Также можно запускать напрямую из корня проекта:
```bash
python main.py
```
[Власов Эдуард](https://github.com/QuickLike)