feat(ci): P2债务清理 + Production部署门禁(PyJWT升级/死代码清理/生产健康检查) #324

Merged
xiaoxia merged 1 commits from feat/ci-p2-debt-and-prod-gate into develop 2026-07-14 16:57:58 +08:00
Owner

变更内容

1. PyJWT 漏洞修复(pip-audit 告警)

  • 升级 pyjwt==2.9.0pyjwt==2.13.0
  • 修复 4 个已知 CVE(2.10.0+ 已全部修复)

2. 死代码清理(vulture 扫出的 5 处)

  • apps/api/app/api/routes/templates.py: 移除未使用的 GetTemplateUsageUseCase import
  • apps/worker/video_processing/unified_render_service.py: 移除未使用的 apply_chroma_key_if_needed import
  • apps/worker/video_processing/unified_render_service.py: 移除未使用的 parse_stickers_from_config import
  • apps/worker/worker_app/tasks/asset_analyzer.py: 移除 extract_frames 未使用的 max_frames 参数
  • apps/worker/worker_app/tasks/generation.py: 移除 _download_library_assets 未使用的 video_extensions 参数(含 docstring)

3. Production 部署门禁

  • Checkout 代码:deploy-production 阶段添加 checkout,修复通知脚本找不到的问题
  • Production smoke test:部署完成后从外部执行健康检查门禁
    • API /health 端点(100s 超时重试)
    • API 登录接口(期望 401/422,验证路由可达)
    • Web 前端首页(期望 200)
    • 全部通过才标记部署成功,失败则 CI 报错
  • 预留回滚机制接入位置(后续完善)

影响范围

  • 业务代码:仅删除未使用 import 和参数,无逻辑变更
  • CI 配置:新增 Production 部署门禁步骤,不影响 Staging 流程
  • 依赖:PyJWT 跨大版本升级,接口兼容(核心 jwt.encode/decode API 无变更)
## 变更内容 ### 1. PyJWT 漏洞修复(pip-audit 告警) - 升级 `pyjwt==2.9.0` → `pyjwt==2.13.0` - 修复 4 个已知 CVE(2.10.0+ 已全部修复) ### 2. 死代码清理(vulture 扫出的 5 处) - `apps/api/app/api/routes/templates.py`: 移除未使用的 `GetTemplateUsageUseCase` import - `apps/worker/video_processing/unified_render_service.py`: 移除未使用的 `apply_chroma_key_if_needed` import - `apps/worker/video_processing/unified_render_service.py`: 移除未使用的 `parse_stickers_from_config` import - `apps/worker/worker_app/tasks/asset_analyzer.py`: 移除 `extract_frames` 未使用的 `max_frames` 参数 - `apps/worker/worker_app/tasks/generation.py`: 移除 `_download_library_assets` 未使用的 `video_extensions` 参数(含 docstring) ### 3. Production 部署门禁 - **Checkout 代码**:deploy-production 阶段添加 checkout,修复通知脚本找不到的问题 - **Production smoke test**:部署完成后从外部执行健康检查门禁 - API `/health` 端点(100s 超时重试) - API 登录接口(期望 401/422,验证路由可达) - Web 前端首页(期望 200) - 全部通过才标记部署成功,失败则 CI 报错 - 预留回滚机制接入位置(后续完善) ## 影响范围 - 业务代码:仅删除未使用 import 和参数,无逻辑变更 - CI 配置:新增 Production 部署门禁步骤,不影响 Staging 流程 - 依赖:PyJWT 跨大版本升级,接口兼容(核心 jwt.encode/decode API 无变更)
xiaoxia added 1 commit 2026-07-14 16:53:52 +08:00
feat(ci): P2债务清理 + Production部署门禁
CI/CD Pipeline / Unit Tests (pull_request) Successful in 1m27s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 1m56s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 2m26s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m30s
6999130237
- 升级PyJWT 2.9.0 -> 2.13.0,修复pip-audit扫出的4个CVE
- 清理vulture扫出的5处死代码:
  * templates.py: 移除未使用的GetTemplateUsageUseCase import
  * unified_render_service.py: 移除未使用的apply_chroma_key_if_needed import
  * unified_render_service.py: 移除未使用的parse_stickers_from_config import
  * asset_analyzer.py: 移除extract_frames未使用的max_frames参数
  * generation.py: 移除_download_library_assets未使用的video_extensions参数
- Production部署门禁:
  * deploy-production阶段加checkout(修复通知脚本找不到的问题)
  * 新增Production smoke test健康检查:部署后从外部验证API健康、登录接口、Web前端
  * 健康检查不通过则部署失败,预留回滚接入位置
xiaoxia merged commit 1c8cb20373 into develop 2026-07-14 16:57:58 +08:00
xiaoxia deleted branch feat/ci-p2-debt-and-prod-gate 2026-07-14 16:57:58 +08:00
Sign in to join this conversation.