Это скрипт, который умеет делать две простых вещи:
- переносить данные из тоггла в ютрек за определенный интервал дат по id таски в ютреке
- расставлять в тоггле проекты и теги по данным из ютрека
Attention! скрипт тупой и не запоминает, что он вносил раньше, поэтому не рекомендуется запускать его на одних и тех же данных несколько раз
Установи requirements
sudo pip3 install -r requirements.txt
Создай конфиг в папке ./configs/
под любым именем (дефолтное - config.json).
{
"toggl": {
"login": "[email protected]",
"password": "top_secret_password",
"token": "top_secret_token",
"workspace": "workspace_name"
},
"youtrack": {
"link": "https://youtrack.example.com",
"login": "name",
"password": "top_secret_password",
"tasks_prefix": "MMX"
}
}
Для тоггла можно указывать либо токен, либо логин/пароль
Если нужно подгрузить конфиг не с дефолтным именем, то используй переменную среды CFG:
CFG=my_config.json python3 toggl_youtrack.py --track --format
Attention! Логины и пароли хранятся в plain text, но кого это волнует.
python3 toggl_youtrack.py --track --format <start_date> <end_date>
--track - выставь, если хочешь перенести данные из тоггла в ютрек
--format - выставь, если хочешь расставить в тоггле проекты и теги по данным из ютрека
--since_last - выставь, если ты уже пользовался скриптом раньше и хочешь затрекать время с учетом твоего предыдущего запуска скрипта. Подробнее см. "Опция --since_last"
--starting_from - выставь, если хочешь задать отличный от today
параметр начала загрузки треков из тоггла
--until - выставь, если хочешь задать отличный от tomorrow
параметр начала загрузки треков из тоггла
starting_from, until - даты, начиная и заканчивая которыми нужно загружать/форматировать данные из тоггла поддерживаются следующие варианты: today, yesterday, tomorrow, "%d-%m-%Y", "%d-%m-%Y %H:%M:%S". Время всегда используется utc. (т.е. если вносить данные за сегодняшний день, внесутся данные с 03:00 сегодня до 03:00 завтра по мск)
Для starting_from дефолтный параметр - today, для until - tomorrow.
Таким образом, команда
python3 toggl_youtrack.py --track --format --starting_from=yesterday --until=today
внесет данные за вчерашний день в ютрек и отформатирует эти записи
команда
python3 toggl_youtrack.py --track --format --starting_from=today
внесет данные за сегодняшний день в ютрек и отформатирует эти записи
команда
python3 toggl_youtrack.py --track --format --starting_from=yesterday
или
python3 toggl_youtrack.py --track --format --starting_from=yesterday --until=tomorrow
внесет данные за вчерашний и сегодняшний день в ютрек и отформатирует эти записи
команда
python3 toggl_youtrack.py --track --format --starting_from='01-01-2017 12:00:00' --until=03-03-2017
внесет данные за c 12:00(UTC) 1 января по 00:00 3 марта в ютрек и отформатирует эти записи.
Attention! У тоггла лимит на загрузку 9000 записей, так что лучше не переусердствовать с такими командами
- загружает данные о subsystem из ютрека и переносит это в теги тоггла
- загружает название таски из ютрека и переносит в тоггл
- заполняет проект в тоггле следующим образом: если ты - ревьюер для таски в ютреке, заполняется проект Quality Management, иначе - по первому тегу таски в ютреке
Скрипт при каждом запуске с опцией --track запоминает (данные сохраняет в файл launch_data.json в корне), до какого времени (параметр --until) он загружал данные в ютрек. Также он идентифицирует эти данные с именем конфига (т.е. для разных конфигов можно вести свою историю)
Затем, при запуске с опцией --since_last, он начнет загружать данные, начиная с этого времени и до текущего момента. Текущий момент также будет сохранен как момент последнего запуска (если опция --track выставлена)
Пример: Пусть сегодняшнее число - 23.04.2017 Была использована команда:
CFG=my_config.json python3 toggl_youtrack.py --track --format --starting_from=yesterday --until=today
Скрипт запомнил, что данные были затреканы до 23-04-2017 00:00:00
В следующий раз была использована команда
CFG=my_config.json python3 toggl_youtrack.py --track --format --since_last
Скрипт будет загружать данные из тоггла с start_time=23-04-2017 00:00:00
до текущего момента
и запомнит текущий момент. Пусть это будет 23-04-2017 14:30:00
В следующий раз скрипт по этой же команде начнет вносить данные с start_time=23-04-2017 14:30:00
и т.д.
Если воспользоваться опцией --since_last, не пользуясь до этого другими вариантами, скрипт выдаст ошибку, т.к. нет предыдущих сохраненных данных