Загрузка данных
Работаем в project-manager-tools.
Цель:
Проверить финальную версию SberTrack-интеграции в рабочей корпоративной сети, где API доступен.
Важно:
Сейчас ничего не дорабатываем без необходимости.
Сначала только проверяем.
Если что-то сломано — сначала покажи ошибку и причину, потом предложи минимальное исправление.
Не делай git push.
Не выводи секреты.
Не выводи полный .env.
PATCH/PUT/DELETE не выполнять.
Blocker не создавать.
Реальные POST выполнять только после dry-run и только для тестовых сущностей в пространстве TST123456.
Контекст:
Ранее дома API возвращал HTTP 403 даже на GET /rest/api/user/v1/current-info и GET /rest/api/space/v3/TST123456.
Сейчас я на рабочей сети, ожидаем, что доступ к API есть.
В проекте уже реализовано:
- создание release
- создание epic
- создание story
- создание task
- создание bug
- создание links
- sbertrack_write_enabled=false по умолчанию
- dry-run режим
- UnitCache
- ensure/update/cache Jira-like поведение частично
- action sbertrack_cache_status
- action sbertrack_plan_full_release_safe
- action sbertrack_create_full_release_from_yaml_ensure
- action sbertrack_create_links_only
- blocker отложен, endpoint не подтверждён
Нужно выполнить финальную проверку по шагам.
---
# 1. Проверка директории
Выполни:
pwd
Убедись, что директория:
/Users/23865613/IdeaProjects/untitled/project-manager-tools
Если не там — перейди туда.
---
# 2. Безопасная проверка .env
Не выводи полный .env.
Выполни:
grep -E 'sbertrack_base_url|sbertrack_project_key|sbertrack_write_enabled|sbertrack_username' .env
Проверь:
- sbertrack_base_url есть
- sbertrack_project_key=TST123456
- sbertrack_write_enabled=false
- sbertrack_username есть
Если sbertrack_write_enabled=true — сразу верни false:
sed -i '' 's/sbertrack_write_enabled=true/sbertrack_write_enabled=false/' .env
---
# 3. Проверка синтаксиса
Выполни:
python -m py_compile src/sbertrack_api.py src/sbertrack_planner.py src/unit_cache.py src/main.py src/yaml_reader.py
Ожидаю:
- ошибок синтаксиса нет
Если есть ошибка — не продолжай POST. Покажи ошибку и предложи минимальное исправление.
---
# 4. Проверка action-ов
Проверь, что в src/main.py есть action-ы:
- sbertrack_cache_status
- sbertrack_plan_full_release_safe
- sbertrack_create_full_release_from_yaml_ensure
- sbertrack_create_links_only
Нужно вывести таблицу:
| Action | Найден | Назначение |
---
# 5. Проверка доступности SberTrack API через GET
Сделай read-only GET-проверку через текущий клиент проекта.
Проверить:
- GET /rest/api/user/v1/current-info
- GET /rest/api/space/v3/TST123456
Важно:
- не выводи пароль;
- не выводи токен;
- не выводи полный response, если там персональные данные;
- покажи только HTTP status и краткий sanitized вывод.
Ожидаю:
- если HTTP 200/2xx — доступ есть, можно продолжать;
- если HTTP 403 — остановиться и написать, что проблема всё ещё в доступе/VPN/IP/credentials;
- если HTTP 401 — проблема в auth;
- если HTTP 404 — проверить base_url/endpoint.
---
# 6. Проверка YAML для тестового релиза
Проверь, есть ли файл:
projects/luch/services/luch-pprb/releases/release-testic.yaml
Если файла нет — создай его в текущем проекте.
Содержимое должно быть таким:
summary: testic
description: Test release created from project-manager-tools for SberTrack final 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"
introduction_start_date: "2026-06-16T09:00:00+03:00"
epic:
summary: testic epic
description: Test epic for SberTrack final check. Safe to delete.
stories:
- summary: testic story 1
description: Test story 1 for SberTrack final check. Safe to delete.
- summary: testic story 2
description: Test story 2 for SberTrack final check. Safe to delete.
tasks:
- summary: testic task 1
description: Test task 1 for SberTrack final check. Safe to delete.
- summary: testic task 2
description: Test task 2 for SberTrack final check. Safe to delete.
- summary: testic task 3
description: Test task 3 for SberTrack final check. Safe to delete.
bugs:
- summary: testic bug 1
description: Test bug 1 for SberTrack final check. Safe to delete.
После этого покажи:
- путь файла
- summary
- количество epic/story/task/bug
- секретов нет
---
# 7. Safe dry-run планирования
Выполни:
python src/main.py --tracker sbertrack --action sbertrack_plan_full_release_safe --project luch --service luch-pprb
Ожидаю:
- YAML найден
- release testic найден в YAML
- epic/stories/tasks/bugs распознаны
- payload полный
- POST/PATCH/PUT/DELETE не выполнялись
- sbertrack_write_enabled=false
Если снова будет No YAML release files found — остановись и проверь yaml_reader.py / путь / glob pattern.
---
# 8. Проверка cache
Выполни:
python src/main.py --tracker sbertrack --action sbertrack_cache_status --project luch --service luch-pprb
Ожидаю:
- команда работает
- cache читается
- если cache пустой — это не ошибка
- команда read-only
- cache не модифицируется
---
# 9. Dry-run ensure
Выполни:
python src/main.py --tracker sbertrack --action sbertrack_create_full_release_from_yaml_ensure --project luch --service luch-pprb
Важно:
sbertrack_write_enabled должен оставаться false.
Ожидаю:
- ensure pattern отрабатывает в dry-run
- если cache hit — показывает code
- если cache miss — показывает, что создал бы сущность
- реальных POST нет
- PATCH/PUT/DELETE нет
---
# 10. Реальный POST полного тестового релиза
Если шаги 1-9 успешны и GET к API работает, сделай один реальный запуск создания полного тестового релиза testic.
Перед запуском:
- покажи sanitized summary сущностей;
- покажи endpoint-ы;
- покажи, что sbertrack_write_enabled=false;
- предупреди, что сейчас будет один реальный запуск.
Затем:
sed -i '' 's/sbertrack_write_enabled=false/sbertrack_write_enabled=true/' .env
python src/main.py --tracker sbertrack --action sbertrack_create_full_release_from_yaml_ensure --project luch --service luch-pprb
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
---
# 11. Что должно быть создано
Ожидаю создание:
- Release: testic
- Epic: testic epic
- Story: testic story 1
- Story: testic story 2
- Task: testic task 1
- Task: testic task 2
- Task: testic task 3
- Bug: testic bug 1
И связи:
- Story -> Release, type=release
- Task -> Release, type=release
- Epic -> Release, type=release
- Story -> Epic, type=decomposition
- Task -> Story, type=decomposition
- Release -> Bug, type=containsbug
Blocker не создавать.
---
# 12. Проверка результата
После реального запуска выведи:
| Сущность | Summary | HTTP status | Created code/id | Response body sanitized |
Для связей:
| Source | Destination | Type | HTTP status | Response body sanitized |
Ожидаю:
- создание сущностей: HTTP 200 или 201
- создание связей: HTTP 201
- response body для сущностей содержит id/code
- response body для связей может быть true
---
# 13. Если возникли ошибки
Если HTTP 570:
- проверь обязательные поля payload;
- покажи sanitized payload;
- скажи, какого поля не хватает.
Если HTTP 403:
- проверь GET;
- если GET тоже 403 — доступ/VPN/credentials;
- если GET 200, а POST 403 — права на создание в TST123456 или endpoint.
Если HTTP 404:
- проверить endpoint.
Если дубли:
- проверить cache и ensure.
Если links не создаются:
- проверить, что source/destination code реально получены;
- проверить type: release/decomposition/containsbug.
Не делай PATCH/PUT/DELETE.
---
# 14. Финальный отчёт
В конце выведи отчёт:
## ФИНАЛЬНЫЙ ОТЧЁТ ПРОВЕРКИ
### 1. Окружение
- Текущая директория:
- API доступен: да/нет
- GET current-info status:
- GET space status:
### 2. Синтаксис
- py_compile: успешно/ошибка
### 3. .env безопасность
- sbertrack_write_enabled в начале:
- sbertrack_write_enabled в конце:
- секреты выводились: нет
- полный .env выводился: нет
### 4. YAML
- release-testic.yaml найден/создан:
- путь:
- summary:
- payload полный: да/нет
### 5. Dry-run
- plan_full_release_safe: успешно/ошибка
- cache_status: успешно/ошибка
- ensure dry-run: успешно/ошибка
### 6. Реальный POST
- Выполнялся: да/нет
- Что создано:
- Какие HTTP status:
- Created IDs/codes:
### 7. Links
- Выполнялись: да/нет
- Количество:
- HTTP status:
- Ошибки:
### 8. Blocker
- Создавался: нет
- Причина: endpoint/модель blocker не подтверждены
### 9. Безопасность
Подтверди:
- POST выполнялся только для тестового YAML testic
- PATCH не выполнялся
- PUT не выполнялся
- DELETE не выполнялся
- git push не выполнялся
- blocker не создавался
- sbertrack_write_enabled=false возвращён
### 10. Итог
Скажи:
- финальная версия рабочая: да/нет
- что именно работает
- что осталось доработать
- можно ли показывать наставнику