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、解决讨论并获得维护者审核;仓库维护者保留处理首次发布和紧急修复的管理入口。