Загрузка данных
Работаем в project-manager-tools.
Задача:
Нужно выполнить ОДИН реальный POST-запрос на создание тестового релиза в SberTrack.
Название релиза должно быть:
testic
Важно:
На предыдущей проверке команда показала:
[WARN] No YAML release files found.
Значит сначала нужно найти, почему YAML не найден, создать или исправить YAML-файл релиза, потом выполнить dry-run, убедиться, что payload полный, и только после этого выполнить один реальный POST.
Рабочая директория:
cd /Users/23865613/IdeaProjects/untitled/project-manager-tools
Жёсткие ограничения безопасности:
- Не делай git push.
- Не выполняй PATCH.
- Не выполняй PUT.
- Не выполняй DELETE.
- Не выводи пароль, токены, username и полный .env.
- Не трогай blocker.
- Не создавай epic/story/task/bug/links сейчас.
- Сейчас нужен только один реальный POST для Release.
- После реального POST обязательно верни sbertrack_write_enabled=false.
- Если что-то не так с YAML или payload — не делай реальный POST, сначала исправь и покажи dry-run.
---
## 1. Проверить текущую директорию
Выполни:
pwd
Ожидается:
/Users/23865613/IdeaProjects/untitled/project-manager-tools
---
## 2. Проверить, почему YAML не находится
Выполни:
find projects -maxdepth 6 -type f \( -name "*.yaml" -o -name "*.yml" \) | sort
Проверь, существует ли путь:
projects/luch/services/luch-pprb/releases/
Если папки нет — создай её:
mkdir -p projects/luch/services/luch-pprb/releases
Также проверь, нет ли ошибки в названии проекта:
- должно быть именно luch, буква l;
- не 1uch, цифра 1.
Если есть старая папка projects/1uch, не используй её для нового теста. Для текущего теста используй:
projects/luch/services/luch-pprb/releases/
---
## 3. Создать backup перед изменениями
Перед созданием/изменением YAML создай backup, если файл уже существует:
if [ -f projects/luch/services/luch-pprb/releases/release-testic.yaml ]; then
cp projects/luch/services/luch-pprb/releases/release-testic.yaml projects/luch/services/luch-pprb/releases/release-testic.yaml.backup_before_real_post
fi
---
## 4. Создать YAML релиза testic
Создай файл:
projects/luch/services/luch-pprb/releases/release-testic.yaml
Файл должен быть заполнен так, чтобы релиз не был пустым и чтобы не получить ошибку HTTP 570 из-за отсутствия обязательных полей.
Используй структуру, которую реально читает текущий yaml_reader.py и sbertrack_planner.py. Перед записью проверь, какие поля ожидаются в коде:
grep -R "uat_ground\|conditions_itservice\|release_kind\|priority\|sber_configuration_item\|ci_code\|workflow_status\|without_integration\|omni\|introduction_start_date\|uat_start_date\|ps1_start_date" -n src projects | head -120
После проверки создай YAML с полным набором полей.
Минимально в YAML должны попасть данные для release payload:
summary: testic
description: "Test release created from project-manager-tools for SberTrack POST check. Safe to delete."
space: TST123456
ci_code: CI02298102
priority: low
workflow_status:
command: NEW
release_kind: planned
uat_ground: hotfix
conditions_itservice: dontChange
without_integration: false
omni: false
uat_start_date: "2026-06-10T00:00:00+03:00"
uat_end_date: "2026-06-11T00:00:00+03:00"
ps1_start_date: "2026-06-15T00:00:00+03:00"
ps1_end_date: "2026-06-15T18:00:00+03:00"
development_start_date: "2026-06-01T00:00:00+03:00"
introduction_start_date: "2026-06-16T09:00:00+03:00"
introduction_end_date: "2026-06-16T18:00:00+03:00"
Важно:
Если yaml_reader.py ожидает не ci_code, а sber_configuration_item — используй формат:
sber_configuration_item:
- code: CI02298102
Если yaml_reader.py сам преобразует ci_code в sber_configuration_item, оставь ci_code.
Если в проекте уже есть пример рабочего YAML, возьми его структуру за основу, но summary обязательно сделай testic.
---
## 5. Проверить, что YAML теперь находится
Выполни:
find projects/luch/services/luch-pprb/releases -maxdepth 1 -type f \( -name "*.yaml" -o -name "*.yml" \) -print
Ожидается, что будет найден:
projects/luch/services/luch-pprb/releases/release-testic.yaml
---
## 6. Проверить .env безопасно
Выполни только безопасный grep:
grep -E 'sbertrack_write_enabled|sbertrack_project_key|sbertrack_base_url' .env
Подтверди:
- sbertrack_write_enabled=false
- sbertrack_project_key=TST123456 или корректный project_key
- base_url есть
- полный .env не выводился
- секреты не выводились
Если sbertrack_write_enabled=true, сразу верни false:
sed -i '' 's/sbertrack_write_enabled=true/sbertrack_write_enabled=false/' .env
---
## 7. Прогнать dry-run только для release
Нужно выполнить dry-run так, чтобы планировался именно release testic.
Сначала посмотри доступные action-ы:
python src/main.py --help | grep sbertrack
Найди action для создания полного релиза или release из YAML.
Если есть отдельный action только для release — используй его.
Если отдельного action нет, используй action, который читает YAML, но убедись, что в YAML нет epic/stories/tasks/bugs или они пустые, чтобы создавался только Release.
Выполни dry-run:
python src/main.py --tracker sbertrack --action sbertrack_create_full_release_from_yaml_ensure --project luch --service luch-pprb
Ожидаемый результат:
- Write enabled: False
- YAML найден
- Release summary: testic
- payload содержит обязательные поля:
- summary
- description
- space
- sber_configuration_item или ci_code, преобразованный в sber_configuration_item
- priority
- workflow_status
- release_kind
- uat_ground
- conditions_itservice
- without_integration
- omni
- даты
- реальные POST/PATCH/PUT/DELETE не выполнялись
Если dry-run снова пишет No YAML release files found:
- остановись;
- найди, какой путь реально читает yaml_reader.py;
- исправь путь или аргументы --project/--service;
- повтори dry-run;
- реальный POST не делать, пока dry-run не увидит release-testic.yaml.
Если dry-run показывает неполный payload:
- исправь YAML или mapper;
- повтори dry-run;
- реальный POST не делать, пока payload не полный.
---
## 8. Выполнить один реальный POST только для Release
После успешного dry-run включи write_enabled:
sed -i '' 's/sbertrack_write_enabled=false/sbertrack_write_enabled=true/' .env
Сразу проверь безопасно:
grep -E 'sbertrack_write_enabled|sbertrack_project_key|sbertrack_base_url' .env
Теперь выполни команду создания release:
python src/main.py --tracker sbertrack --action sbertrack_create_full_release_from_yaml_ensure --project luch --service luch-pprb
Требования к реальному запуску:
- должен уйти только один POST на release/create;
- не создавать epic/story/task/bug/link;
- не трогать blocker;
- не выполнять PATCH/PUT/DELETE;
- summary должен быть testic;
- payload должен быть полный;
- если SberTrack вернёт HTTP 200 или 201 и id/code — зафиксируй его.
Если команда пытается создавать epic/story/task/bug/link:
- остановись;
- верни sbertrack_write_enabled=false;
- доработай YAML или action так, чтобы создавался только Release;
- повтори dry-run;
- только после этого снова реальный POST.
---
## 9. Сразу вернуть безопасный режим
После реального POST, независимо от результата, выполни:
sed -i '' 's/sbertrack_write_enabled=true/sbertrack_write_enabled=false/' .env
Проверь:
grep -E 'sbertrack_write_enabled|sbertrack_project_key|sbertrack_base_url' .env
Ожидается:
sbertrack_write_enabled=false
---
## 10. Финальный отчёт
Дай отчёт строго в таком формате:
# ФИНАЛЬНЫЙ ОТЧЁТ: REAL POST RELEASE TESTIC
## 1. Почему раньше было No YAML release files found
Кратко объясни:
- какой путь искала команда;
- был ли YAML-файл;
- что исправлено.
## 2. Какой YAML использовался
Путь:
projects/luch/services/luch-pprb/releases/release-testic.yaml
Кратко перечисли поля, без секретов.
## 3. Dry-run
- YAML найден: да/нет
- summary: testic
- payload полный: да/нет
- обязательные поля присутствуют: да/нет
- POST/PATCH/PUT/DELETE выполнялись на dry-run: нет
## 4. Реальный POST
- Выполнялся: да/нет
- Endpoint: POST /rest/api/unit/v2/release/create
- Количество POST: 1
- HTTP status: указать статус
- Response body: указать только безопасно, например {"id": "..."} или code/id
- Созданный release id/code: указать
## 5. Что НЕ выполнялось
Подтверди:
- Epic не создавался
- Story не создавались
- Task не создавались
- Bug не создавался
- Links не создавались
- Blocker не создавался
- PATCH не выполнялся
- PUT не выполнялся
- DELETE не выполнялся
- git push не выполнялся
- секреты не выводились
- полный .env не выводился
## 6. Безопасный режим
- sbertrack_write_enabled после теста: false
## 7. Итог
Скажи:
- релиз testic создан или нет;
- если не создан — точная причина и что надо исправить.