用途:github-context 是一个基础性技能,用于把 GitHub issue 与 pull request 的上下文采集为标准化、结构化的格式,供其他技能作为依赖调用,也可独立运行。
主要能力:一次采集即可获取 issue/PR 元数据、评论、diff、评审线程、提交和 CI 日志;输出一致的 JSON 结构;通过环境变量控制采集范围;生成 manifest.json 记录采集元数据;可复用。
使用方式:通过技能运行器(Holon 或宿主)调用 scripts/collect.sh 并传入引用,例如: collect.sh "holon-run/holon#123" collect.sh 123 holon-run/holon INCLUDE_CHECKS=false MAX_FILES=50 collect.sh https://github.com/holon-run/holon/pull/123 引用支持 owner/repo#number、纯数字(需第二参数 repo_hint)和完整 URL。也可通过 /holon/input/payload.json 提供 ref 等元数据。
环境变量:GITHUB_CONTEXT_DIR 指定输出目录,默认 /holon/output/github-context(若存在)否则为临时目录 /tmp/holon-ghctx-*;MANIFEST_PROVIDER / COLLECT_PROVIDER 写入 manifest.json 的提供者名,默认 github-context;TRIGGER_COMMENT_ID 用于在评论/评审线程中标记 is_trigger;INCLUDE_DIFF、INCLUDE_CHECKS、INCLUDE_THREADS、INCLUDE_FILES、INCLUDE_COMMITS 默认均为 true;MAX_FILES 默认 200。
输出:产物写入 ${GITHUB_CONTEXT_DIR}/github/,包括 issue.json 或 pr.json、comments.json、review_threads.json、files.json、pr.diff、commits.json、check_runs.json 与 test-failure-logs.txt;manifest.json 写在 ${GITHUB_CONTEXT_DIR}/manifest.json。
集成说明:包装技能在委托前设置自己的默认值和 MANIFEST_PROVIDER;辅助库位于 scripts/lib/helpers.sh,提供解析、依赖检查、抓取辅助和 manifest 写入,应 source 而非复制。
限制:资料未提供认证方式、速率限制、平台支持范围及错误处理细节,暂未提供。