Skip to content

English · 简体中文

质量与安全

SpecStamp 把普通 Pull Request 的快速检查、定期全量测试和安全扫描分开运行,既保证常见改动能较快得到结果,也保留整套测试和覆盖率证据。

普通 CI

每次 push 和 Pull Request 都会在 Python 3.10~3.13 上构建 wheel 和 sdist,并在干净虚拟环境中安装 wheel,检查:

  • specstamp 主命令;
  • codex-sdlc 兼容命令;
  • Python 包导入和 Schema 读取;
  • 非 Git 目录初始化;
  • Python 3.12、3.13 上的公开安装和 Agent 同步测试。

Python 3.10、3.11 当前承担构建和干净安装兼容性检查,不代表这两个版本运行了全量 pytest。

全量测试与覆盖率

“全量测试与覆盖率”工作流支持手动运行,并在每周一自动运行。它会把仓库中的全部 test_*.py 文件分成四组并行执行,所有组成功后再合并覆盖率数据。

工作流会同时提供:

  • 终端覆盖率摘要;
  • coverage.xml
  • 可浏览的 HTML 覆盖率报告;
  • Codecov 上的历史趋势。

README 中的覆盖率徽章只对应这套全量工作流,不使用少量冒烟测试冒充项目覆盖率。

依赖更新

Dependabot 每周检查 Python 依赖和 GitHub Actions,按运行依赖、开发依赖和 Actions 分组创建 Pull Request。GitHub 依赖漏洞告警和 Dependabot 安全更新也已启用,发现已知漏洞时会创建修复 Pull Request。依赖更新仍需通过现有 CI 后再合并。

安全扫描

CodeQL 在 main 分支 push、Pull Request 和每周定时任务中使用扩展安全规则扫描 Python 代码,不把一般代码质量提示混入安全告警。可能涉及漏洞、秘密资料、任意文件访问、数据完整性或命令执行的问题,请使用仓库的 私密漏洞报告,不要先公开细节。

分支保护

main 禁止强制推送和删除。普通贡献通过 Pull Request 合入,需要通过既定 CI、解决讨论并获得维护者审核;仓库维护者保留处理首次发布和紧急修复的管理入口。