用途:为 Django 项目提供一套可重复执行的发布前验证流程,适用于提交 PR 前、模型或迁移变更后、依赖升级后,以及部署到预发或生产之前。
主要能力与阶段:
- 环境检查:确认 Python 版本、虚拟环境、依赖过期情况和必要环境变量(如 DJANGO_SECRET_KEY)。
- 代码质量:mypy 类型检查、ruff 检查、black 格式检查、isort 导入排序、python manage.py check --deploy。
- 迁移检查:showmigrations、makemigrations --check、migrate --plan,识别未生成迁移、未应用迁移和迁移冲突。
- 测试与覆盖率:pytest --cov=apps --cov-report=html --cov-report=term-missing --reuse-db,报告通过/失败/跳过数量和整体及分应用覆盖率。资料给出目标:模型 90%+、序列化器 85%+、视图 80%+、服务 90%+、整体 80%+。
- 安全扫描:pip-audit、safety check --full-report、bandit、gitleaks(若安装)、检查 DEBUG 状态。
- Django 命令:check、collectstatic --noinput --clear、数据库完整性、缓存连通性。
- 性能:借助 Django Debug Toolbar 检查 N+1 查询、缺失索引与重复查询,资料提示典型页面查询数宜小于 50。
- 静态资源:npm audit、npm run build、findstatic。
- 配置审查:DEBUG、SECRET_KEY、ALLOWED_HOSTS、HTTPS、HSTS、数据库配置。
- 日志、API 文档(DRF generateschema)与 git diff 审查,检查调试语句、TODO、硬编码密钥和是否包含迁移。
使用方式:按阶段手动执行所列命令,最终生成结构化验证报告;也可放入 CI,例如 GitHub Actions 中先装依赖,再依次运行 ruff、black、isort、mypy、安全扫描与 pytest。
限制:自动化验证无法替代人工代码审查和预发环境实测;部分命令依赖相应工具已安装;资料未提供具体安装方式之外的平台限制或收费信息。