已关闭
test(contracts): GitCode security job 的 unshallow 全历史步骤入契约(镜像侧 fetch-depth 对等收尾) #628
aflyingto创建于 4 天前关闭于 4 天前
aflyingto
4 天前 评论:
4 天前 评论:
验证记录
- 当前版本或分支: main @ 2e54bb1(!601 合并后)
- 验证时间: 2026-10-26
- 复现命令:
grep -n -B3 -A8 "unshallow" .gitcode/workflows/ci.yml;grep -n "unshallow\|full history" tests/contracts/ci_workflow_test.go - 实际结果: security job 含 "Verify full history" 步骤(浅克隆检出后
git fetch --unshallow,fail-closed:|| { echo "::error::..."; exit 1; }失败即 job 失败);该步骤存在与 fail-closed 行为均无契约执行(grep 证实契约文件零相关断言)——镜像侧fetch-depth: 0已钉,GitCode 侧等价机制裸奔,为最后一项对等残差 - 预期结果: unshallow 步骤的存在与 fail-closed 语义有契约执行与负例
- 时间线检查: 本 issue 为 PR !600 文档审查备忘的登记项(2026-10-26 创建),无重复、无先行 PR;!599/!600 已完成其余维度对等
- 结论: 继续修复——validateWorkflow 补 unshallow 检查(security job 须含
git fetch --unshallow步骤且其 run 脚本含 fail-closed 失败处理)+ mutation 负例(删步骤 / 去 fail-closed 各一)+ §5.4 GitCode 清单补一条


aflyingto
4 天前 评论:
4 天前 评论:
开发进度
- 当前状态: ready-for-review(PR !602 已完成自检、四角色独立评审一次闭环全部 approved、双端 CI 全绿,等待人工最终确认与合并)
- 根因: 镜像侧 fetch-depth: 0 已钉而 GitCode 侧等价机制(unshallow + fail-closed)零契约——最后一项对等残差(详见验证记录)
- 主要修改: validateSecurityUnshallow(unshallow ∧ exit 1 合取)+ 双 mutation(删步骤/软化失败)+ §5.4 security bullet 并句
- 影响范围: 纯测试基建 + 规范文档;零生产代码
- 单元测试:
go test ./...163 包全部通过;GitCode 侧 21 负例全过(新增 2) - 构建: 无涉
- 实际命令验证: 契约测试读真实 ci.yml(unshallow 步骤实际存在且 fail-closed);双负例实跑命中
- 安全影响: 防安全扫描静默降级的契约加固;无凭证变化
- 文档同步: §5.4 并句(保证层等价性表述,文档评审背书)
- 风险或未覆盖项: risk/medium,合并前需人工最终确认;无遗留——双端 CI 契约对等台账全部归零
- 关联 PR: !602


背景
-race与 gitleaks--redact=100的契约对等后,文档审查备忘指出最后一项对等缺口:镜像侧 secret-scan 钉了fetch-depth: 0(全历史扫描),GitCode 侧的等价机制是 security job 的 unshallow 步骤(浅克隆检出后git fetch --unshallow补全历史再扫描,见 spec/delivery/ci-workflows.md §2.1 与 spec/foundations/security.md 的 fail-closed 描述),目前未入契约任务
验收标准
影响范围
tests/contracts/ci_workflow_test.go、spec/delivery/ci-workflows.md来源: PR !600 文档审查备忘(镜像侧 fetch-depth: 0 的 GitCode 等价物未入契约)