Ты работаешь в репозитории 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 пока не выполнять.