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


Ты работаешь в репозитории project-manager-tools.

Контекст задачи:
Мы добавляем поддержку SberTrack в скрипты релизного процесса.

Раньше мы пытались создать объект в пространстве 1231TST1231, но поддержка SberTrack ответила, что это пространство типа проектной деятельности, и в нём нельзя создавать релизные объекты.

Теперь создано новое пространство типа Change/релизов.

Код нового пространства:
TST1234

Важно:
- Старое пространство 1231TST1231 больше не использовать для теста релиза.
- Для релиза использовать пространство TST1234.
- Не трогать Jira-like endpoint.
- Не трогать старый action sbertrack_test_create_release, если он был для Jira-like проверки.
- Не использовать /rest/api/unit/v2/ops_task/create.
- Для релиза использовать официальный endpoint:
  POST /rest/api/unit/v2/release/create
- Не запускать plan_releases.
- Не делать git push.
- Не выводить логин, пароль, токены и полный .env.
- Реальный POST не выполнять без моего отдельного подтверждения.

Документация SberTrack:
Для создания релиза через REST API используется:

POST https://api.sbertrack.sberbank.ru/rest/api/unit/v2/release/create

Пример curl из документации:
curl -k -i -u "user:pass" --data "@release.json" -H "Content-Type: application/json" -H "Accept: application/json" -X POST https://<SBERTRACK_BASE_URL>/rest/api/unit/v2/release/create

Для получения информации о релизе используется:
GET /rest/api/unit/v2/{code}

Для обновления релиза используется:
PATCH /rest/api/unit/v2/update/{code}

Для изменения статуса релиза используется:
PATCH /rest/api/workflow/v1/unit/{code}/status/change/{actionCode}

Задача:
1. Найди файл с SberTrackAPI.
2. Добавь отдельный метод для тестового создания релиза через REST API, например:
   create_test_release_rest()

3. Метод должен отправлять POST на:
   /rest/api/unit/v2/release/create

4. Добавь отдельный action в main.py:
   sbertrack_test_create_release_rest

5. Метод должен поддерживать dry-run:
   если sbertrack_write_enabled=false, POST не отправлять, а только вывести sanitized payload.

6. В dry-run вывести:
   - endpoint;
   - sanitized payload;
   - что POST не отправлен;
   - что используется space = TST1234;
   - что Jira не использовалась;
   - что plan_releases не запускался;
   - что BacklogPlanning не создавался.

7. Payload для dry-run сделай таким:

{
  "summary": "TEST project-manager-tools SberTrack release REST integration",
  "description": "Test release created by project-manager-tools SberTrack REST integration. Safe to delete.",
  "space": "TST1234",
  "attributes": {
    "release_kind": "planned",
    "priority": "low",
    "uat_ground": "hotfix"
  }
}

8. Перед запуском проверь .env:
   sbertrack_project_key должен быть TST1234
   sbertrack_write_enabled должен быть false

9. Если в документации или коде найдёшь, что для создания релиза обязательны дополнительные поля, не делай реальный POST. Сначала покажи список обязательных полей и предложи исправленный payload.

10. Запусти только dry-run командой:
   PYTHONPATH=src python src/main.py --tracker sbertrack --action sbertrack_test_create_release_rest

11. После dry-run остановись и покажи:
   - результат проверки;
   - sanitized payload;
   - какие файлы изменены;
   - какую команду надо будет выполнить для реального POST после моего подтверждения.

Реальный POST пока не выполнять.