Repository navigation
Releases: RoboNET/YandexTrackerCLI
Release list
v0.7.0
What's Changed
- Fix PATCH 428 on autoaction/trigger: add --version query param by @matvejalekseev in #39
- feat(version): запоминать версию ресурса на get и подставлять её в PATCH by @RoboNET in #40
- chore: release v0.7.0 by @github-actions[bot] in #41
New Contributors
- @matvejalekseev made their first contribution in #39
Full Changelog: v0.6.3...v0.7.0
v0.6.3
What's Changed
- fix(config): сериализовать чтение-изменение-запись конфига by @RoboNET in #33
- fix(config): переживать преходящий отказ переименования на Windows by @RoboNET in #36
- fix(auth): сохранять ротированный refresh-токен by @RoboNET in #35
- chore: release v0.6.3 by @github-actions[bot] in #37
Full Changelog: v0.6.2...v0.6.3
Что заметит скрипт
Номер версии патчевый, но наблюдаемое поведение в двух местах изменилось — если вы разбираете вывод yt строгой схемой, прочитайте это.
Появился новый отказ. Запись конфига теперь идёт под файловым локом (config.json.lock). Если лок занят другим процессом yt дольше таймаута, команда завершится с config_error (exit 9) там, где раньше запись всегда удавалась. Таймаут — 10 секунд, для записи после интерактивного входа — 60, для сохранения ротированного refresh-токена — 20.
Появилось новое предупреждение в stderr. Если ротированный refresh-токен не удалось сохранить, команда всё равно завершается успешно (access-токен уже получен), но в stderr печатается строка вида {"warning":{"code":"refresh_token_not_saved",...}}. Отличайте warning от error по корневому ключу: наличие такой строки не означает неуспех команды.
Зачем это всё
Три правки, все про креденшелы:
- Конфиг больше не теряет параллельные правки. Читался целиком, менялся и писался целиком, без сериализации между процессами. У авто-перелогина окно равно длительности браузерного флоу — минуты, — и в него попадали в том числе ужесточения политик профиля: пользователь сузил права, а профиль возвращался к более широким, без единого сообщения.
- Ротированный refresh-токен сохраняется. Раньше он подхватывался только на ветке перелогина, а на обычном обновлении отбрасывался. Если федерация ротирует токены при каждом обмене, сохранённый умирал после первого же обновления, и вместо тихого продления пользователь получал браузер.
- Запись переживает преходящий отказ на Windows. Замена файла там конфликтует, если кто-то на мгновение держит его открытым — антивирус, индексатор, чужой процесс.
Попутно закрыты две вещи, каждая тяжелее исходной: общее фиксированное имя временного файла (две одновременные записи могли обрезать конфиг друг друга — порча креденшелов всех профилей; то же было в кеше токенов) и запись без сброса на диск.
v0.6.2
What's Changed
- feat(ci): артефакты под musl — linux-musl-x64 / linux-musl-arm64 by @RoboNET in #30
- chore: release v0.6.2 by @github-actions[bot] in #32
Full Changelog: v0.6.1...v0.6.2
v0.6.1
What's Changed
- docs: раздел про переменные окружения + починка их разбора by @RoboNET in #28
- chore: release v0.6.1 by @github-actions[bot] in #29
Full Changelog: v0.6.0...v0.6.1
v0.6.0
What's Changed
- chore: sync plugin.json version to 0.5.0 by @github-actions[bot] in #19
- feat!: доставка скила через маркетплейс, установщик из CLI удалён by @RoboNET in #23
- fix: внятный отказ при отмене вместо молчаливого exit 1 by @RoboNET in #24
- test: инвариант полноты фильтрации вывода по allowed_queues by @RoboNET in #25
- fix(ci): не пропускать workflows-lint на тегах — иначе релиз не публикуется by @RoboNET in #26
New Contributors
- @github-actions[bot] made their first contribution in #19
Full Changelog: v0.5.0...v0.6.0
v0.5.0
v0.4.0
v0.3.0
v0.2.2
What's Changed
Full Changelog: v0.2.1...v0.2.2