Загрузка данных
Работаем в project-manager-tools.
Контекст:
Мы закончили этап Jira-like ensure/update/cache.
Сейчас подтверждено:
- API доступен
- GET current-info HTTP 200
- GET space HTTP 200
- пользователь: Даниил Важдаев
- release testic уже создан в SberTrack:
code = TST123456-41
- remote/cache find находит testic
- update endpoint найден:
PATCH /rest/api/unit/v2/update/{code}
- метод библиотеки найден:
sbertrack_python_api.api.v1.generated.UnitAPI.update(code, data)
- sbertrack_write_enabled сейчас false
Цель:
Проверить реальный PATCH/update на уже созданном тестовом release testic.
Важно:
- НЕ создавать новый release.
- НЕ создавать новые epic/story/task/bug.
- НЕ создавать новые links.
- НЕ трогать blocker.
- НЕ делать git push.
- НЕ выводить секреты.
- НЕ выводить полный .env.
- PATCH выполнить только для существующего тестового релиза TST123456-41.
- После теста обязательно вернуть sbertrack_write_enabled=false.
Что нужно сделать:
1. Создать backup перед изменениями:
- src/sbertrack_api.py
- src/sbertrack_planner.py
- src/main.py
- .env
2. Проверить текущий безопасный режим:
grep -E 'sbertrack_write_enabled|sbertrack_project_key|sbertrack_base_url' .env
3. Сначала выполнить read-only проверку релиза:
python src/main.py --tracker sbertrack --action sbertrack_find_unit_by_summary --project luch --service luch-pprb --unit_type release --summary "testic" --space TST123456
Ожидаемо:
- найден code TST123456-41
- POST/PATCH/PUT/DELETE не выполнялись
4. Выполнить dry-run update для TST123456-41.
Нужно обновить только безопасное текстовое поле, например description/current comment, без изменения:
- type
- space
- project
- code
- workflow_status
- release_kind
- priority
- dates
- links
Новое значение description:
"PATCH update test from project-manager-tools. Existing release testic was updated safely. Safe to delete."
Если текущий update_unit_by_code умеет принимать payload напрямую, используй его.
Если отдельного action для update нет, добавь безопасный action:
sbertrack_update_unit_by_code
Аргументы:
--unit-code TST123456-41
--summary "testic"
--description "PATCH update test from project-manager-tools. Existing release testic was updated safely. Safe to delete."
При sbertrack_write_enabled=false action должен только показать dry-run.
5. Если dry-run успешен, выполнить один реальный PATCH.
Перед реальным PATCH:
- временно заменить в .env:
sbertrack_write_enabled=false
на
sbertrack_write_enabled=true
Выполнить только один PATCH для TST123456-41.
После PATCH сразу вернуть:
sbertrack_write_enabled=false
Проверить:
grep -E 'sbertrack_write_enabled|sbertrack_project_key|sbertrack_base_url' .env
6. После PATCH выполнить GET/read-only проверку TST123456-41:
- проверить, что unit доступен
- проверить, что description обновился
- не выводить секреты
- не выводить полный response, если там есть чувствительные данные
- вывести только безопасные поля:
code
summary/name/title
description
type
space
status
7. Проверить, что новые сущности НЕ создались:
- не должно быть новых Release/Epic/Story/Task/Bug
- не должно быть новых links
- blocker не создавался
8. Финальный отчет:
## 1. PATCH/update test
- code: TST123456-41
- endpoint: PATCH /rest/api/unit/v2/update/{code}
- HTTP status
- result: success/fail
## 2. Что изменено
- какое поле обновлено
- старое значение, если безопасно показать
- новое значение
## 3. Что НЕ выполнялось
Подтвердить:
- новый release не создавался
- epic/story/task/bug не создавались
- links не создавались
- blocker не создавался
- PUT не выполнялся
- DELETE не выполнялся
- git push не выполнялся
- секреты не выводились
- полный .env не выводился
## 4. Безопасность
Подтвердить:
- sbertrack_write_enabled в конце false
## 5. Вывод
Сказать честно:
- работает ли реальный PATCH/update
- можно ли считать Jira-like update подтвержденным
- что осталось проверить по remote search без cache