Загрузка данных


Работаем в 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