feat(clean-release): complete compliance redesign phases and polish tasks T047-T052

This commit is contained in:
2026-03-10 09:11:26 +03:00
parent 0cf02bcf82
commit 83334fe4da
79 changed files with 7430 additions and 945 deletions

View File

@@ -291,22 +291,77 @@ export RETENTION_PERIOD_DAYS=90
- без внешних интернет-источников;
- только с внутренними серверами ресурсов компании.
### Операторский цикл (TUI)
### Операторский цикл (CLI/API/TUI)
#### A) Headless CLI (основной сценарий для CI/CD)
```bash
cd /home/busya/dev/ss-tools/backend
# Регистрация кандидата
.venv/bin/python3 -m src.scripts.clean_release_cli candidate-register \
--candidate-id 2026.03.09-rc1 \
--version 1.0.0 \
--source-snapshot-ref git:release/2026.03.09-rc1 \
--created-by release-operator
# Импорт артефакта
.venv/bin/python3 -m src.scripts.clean_release_cli artifact-import \
--candidate-id 2026.03.09-rc1 \
--artifact-id artifact-001 \
--path backend/dist/package.tar.gz \
--sha256 deadbeef \
--size 1024
# Сборка манифеста
.venv/bin/python3 -m src.scripts.clean_release_cli manifest-build \
--candidate-id 2026.03.09-rc1 \
--created-by release-operator
# Запуск compliance
.venv/bin/python3 -m src.scripts.clean_release_cli compliance-run \
--candidate-id 2026.03.09-rc1 \
--actor release-operator
```
#### B) API-автоматизация
Поддерживаемые endpointы:
- V2 lifecycle:
- `POST /api/clean-release/candidates`
- `POST /api/clean-release/candidates/{candidate_id}/artifacts`
- `POST /api/clean-release/candidates/{candidate_id}/manifests`
- `GET /api/clean-release/candidates/{candidate_id}/overview`
- Legacy compatibility (для постепенной миграции интеграций):
- `POST /api/clean-release/candidates/prepare`
- `POST /api/clean-release/checks`
- `GET /api/clean-release/checks/{check_run_id}`
#### C) TUI thin client
```bash
cd /home/busya/dev/ss-tools
./run_clean_tui.sh <candidate_id>
```
Горячие клавиши:
- `F5`: Run Compliance
- `F6`: Build Manifest
- `F7`: Reset Draft
- `F8`: Approve
- `F9`: Publish
- `F10`: Refresh Overview
Ожидаемый flow:
1. Выбрать `candidate_id`.
2. Подтвердить `profile=enterprise-clean`.
3. Запустить проверку (F5).
4. Дождаться терминального статуса:
- `COMPLIANT`кандидат готов к следующему этапу выпуска;
- `BLOCKED`выпуск запрещён до устранения нарушений.
3. Выполнить `F6` (если манифест отсутствует).
4. Выполнить `F5` для compliance.
5. При `COMPLIANT`перейти к `F8` и `F9`.
6. При `BLOCKED`устранить нарушения и повторить `F5`.
По умолчанию `run_clean_tui.sh` запускает TUI в `real` режиме (`CLEAN_TUI_MODE=real`) без инъекции демонстрационных нарушений.
Важно: TUI запускается только в интерактивном TTY; для headless-среды используйте CLI/API.
### Переменные запуска `run_clean_tui.sh`