跳到正文
文档目录贡献路径验证

贡献路径验证

文档里写了“运行 npm test”,新贡献者真的能跑通吗?贡献路径验证会从 README、CONTRIBUTING 和项目清单中提取安装、测试和代码检查命令,整理成一份可审阅的计划;你确认后,在隔离的 Docker 环境里从干净状态执行一遍,记录每一步的结果。

阅读约 3 分钟7 个小节

前提条件

  • 当前分支已有一份成功的体检报告。验证会绑定这份报告的固定提交,保证每条命令和证据都能回到同一个版本。
  • 部署已启用隔离执行:Docker 正在运行、执行镜像已构建、REPOCARE_REPRO_ENABLED=true,并且复现 Worker 在线。见部署与运维 · 启用隔离执行。
  • 计划需要安装依赖时,管理员还要允许受限的依赖联网。

没有启用隔离执行时,仍可以生成和审阅计划,只是暂时不能执行。

入口

  • 体检报告页的“验证贡献路径”;
  • 体检页的“贡献路径”标签;
  • 项目概览的“贡献路径验证”卡片。

三个阶段

阶段做什么
计划审阅确认文档与项目清单中提取出的命令
隔离演练在受限的 Runner 中按计划执行
证据与修复定位阻塞步骤,进入草稿与交付更新文档

审阅计划

RepoCare 优先读取 README、CONTRIBUTING 和项目脚本,生成一条最小贡献路径。计划不会自动运行,请逐条核对:

  1. 准备步骤:例如“准备 Node.js 依赖”“准备 Python 项目依赖”。
  2. 验证步骤:例如“运行项目测试”“运行代码检查”“运行类型检查”“运行 Python 测试”“运行 Go 测试”。
  3. 来源:每条命令都标明来自“文档原文”还是“项目清单”,可以展开查看原文。
  4. 执行边界:仓库、固定提交、自动识别的运行环境,以及“受限执行”的具体限制。

文档没有给出完整命令时,计划会根据受支持的项目清单生成最小验证路径,并提示“项目文档未提供完整命令”。快照中找不到可安全执行的命令时,会建议你先在 README、CONTRIBUTING 或项目配置中补充 npm、pytest 或 go test 命令。

确认并执行

  1. 勾选“我已核对上述命令和来源”。
  2. 点击确认,任务进入隔离执行队列。确认后任务交给独立的 Runner,不会在网页服务进程中执行。
  3. 执行期间可以离开页面,任务会继续;排队中可以“取消排队”。

执行环境的限制:

  • 只读根文件系统,不授予额外 capabilities,限制 CPU、内存和进程数;
  • 依赖准备阶段只有在管理员允许、且你确认依赖来源后才能联网;
  • 验证阶段始终断网;
  • 单个验证任务有时间预算,默认 180 秒,由管理员配置。

读懂结果

状态含义
已走通维护者确认的所有安装、测试和代码检查步骤都能完成(所有非后台步骤退出码为 0)
有阻塞至少一个步骤没有完成,请查看退出码和执行证据
环境阻塞Runner 环境暂时无法完成验证,例如镜像缺失、依赖网络不可用
计划已阻止计划没有通过安全校验,不会执行
执行失败隔离验证本身未能完成
已取消由维护者取消

结果页显示“验证步骤通过率”,以及每一步的标准输出、错误输出和退出码。证据还包括执行计划、结果快照、源码准备记录等,每个文件都记录了完整性哈希。

发现阻塞之后

  1. 根据失败步骤的输出,判断是文档描述不准确、缺少前置步骤,还是项目本身的问题。
  2. 点击“进入草稿与交付”,基于阻塞证据更新 README 或 CONTRIBUTING。
  3. 文档改进合并后重新体检,再在新提交上重新验证。

项目提交变化后,旧的验证结果会标为“需要重新验证”,请在当前固定提交上重新演练。