返回精选库
Github·开发与工程

github Skill 使用指南:在 OpenClaw 中读取 PR 状态简报

本文目录

github Skill 让 OpenClaw 通过 GitHub CLI(gh)读取仓库信息。第一次可以只做一件事:把某个 PR 的状态、审核结论和检查结果整理成一份简报,确定下一步该等待、补审核,还是继续看失败日志。你需要一个准确的 PR 链接,以及能访问该仓库的 GitHub 账号。

先确认 Skill,再准备 gh

在运行 OpenClaw 的机器上打开终端:

命令
openclaw skills info github
openclaw skills check

如果已有内置 github Skill,直接使用它,不必再装同名副本。当前内置版声明了 gh 依赖;ClawHub 的 @steipete/github 上架版是 1.0.0,内容较短,未声明这个依赖,所以“已找到 Skill”仍不代表 CLI 已安装、账号已登录。

只有该 Skill 确实不存在、且你希望使用这份 ClawHub 上架版时,按当前 OpenClaw 的入口安装:

命令
openclaw skills install @steipete/github --version 1.0.0

随后再次检查 Skill。多 Agent 配置应对目标 Agent 使用 openclaw skills info github --agent YOUR_AGENT_ID 和 openclaw skills check --agent YOUR_AGENT_ID,把占位符换成真实 ID;查错工作区会让“存在”与实际聊天中可用的 Skill 不一致。如果也需要为这个 Agent 安装上架版,安装时同样指定目标:

命令
openclaw skills install @steipete/github --version 1.0.0 --agent YOUR_AGENT_ID

gh 是单独的工具。macOS 已有 Homebrew 时,在 Agent 实际执行命令的机器 安装:

命令
brew install gh
gh --version
gh auth status --hostname github.com

已有可用登录就不必重新授权。尚未登录时,在终端运行下面的命令,按提示在浏览器完成 GitHub 授权,然后重新检查状态:

命令
gh auth login --hostname github.com --web

只读是接下来任务的操作范围,不是这次登录获得的权限范围;GitHub CLI 的登录凭据可能允许写操作。私有仓库和 Actions 日志还取决于账号及令牌的实际访问权限。

第一次在 OpenClaw 中输入

替换 PR 链接,在 OpenClaw 对话中 这样输入:

提示词
请使用 github Skill,给 https://github.com/OWNER/REPO/pull/NUMBER
做一份只读状态简报。

先确认仓库、PR 标题、状态、是否为草稿、当前 head SHA 和审核结论。
列出该 PR 的全部检查:通过、失败、等待、跳过、取消分别标明,保留详情链接。
如果有失败的 GitHub Actions 检查,先给出对应 run/job 和关键错误;
日志读取失败就说明缺口,不猜原因。
最后列出下一步:需要等待什么、谁需要审核、哪些失败值得继续调查。
这次不要发评论、改代码、重跑工作流、审批或合并 PR。

不需要先 clone 仓库。给出完整 PR URL 后,读取远端状态不依赖终端当前所在的 Git 目录;后面要修代码时,再切换到有仓库检出的工作流。

对照原始结果,判断简报是否完整

下面是可在终端独立读取同一个 PR 的两条命令。先把 PR_URL 改成真实链接,再运行后两行:

命令
PR_URL="https://github.com/OWNER/REPO/pull/NUMBER"
gh pr view "$PR_URL" --json number,title,state,isDraft,reviewDecision,headRefOid,url
gh pr checks "$PR_URL" --json name,bucket,state,link

检查四件事:

  1. 对象正确。 仓库、PR 编号和标题匹配;state 区分开放、关闭和已合并,isDraft 单独表示草稿。
  2. 审核与 CI 分开。 reviewDecision 不能用检查全绿代替;为空时保留“未给出审核结论”,不要补成已批准。
  3. 检查没有漏项。 bucket 将检查归为 pass、fail、pending、skipping、cancel。等待、跳过和取消应分别写出。没有检查记录不等于全部通过。
  4. 结论仍对应当前 PR。 保存读取时的 headRefOid 与详情链接。有人推送新提交后,重新读取状态,不继续拿旧简报判断新代码。

gh pr checks 的退出码 8 表示检查仍在等待;不能把它解释成工具没有工作。想只看仓库要求的检查时可加 --required,但那是过滤后的结果,不应写成“全部检查”。

有失败时,再沿检查链接看日志

先打开失败项的 link。若它指向 GitHub Actions,从页面 URL 中找 /actions/runs/RUN_ID,并确认属于这个 PR 的检查。其他 CI 平台的链接应交给对应平台处理,不能套用 Actions 日志命令。

把 OWNER/REPO、RUN_ID 换成真实值,在终端读取该次运行:

命令
gh run view RUN_ID --repo OWNER/REPO --json status,conclusion,event,headSha,url,jobs,attempt

读取 jobs 数组中失败项的 databaseId,将它作为 JOB_ID;这是 job 编号,不是 run 编号。再查询该 job:

命令
gh run view RUN_ID --repo OWNER/REPO --job JOB_ID --log-failed

PR 编号、run ID 和 job ID 是三种不同的编号。不要拿仓库最新一次运行或同名分支的旧运行代替这个检查。pull_request 工作流默认可能检出合并分支,工作流里的 GITHUB_SHA 因此可以不同于 PR 源分支头;沿 PR 的检查链接核对运行、事件和提交上下文,比只筛一个 SHA 更可靠。

如果日志只有下游失败,继续找前面的第一个实质错误;如果 run 还未结束,结论保持等待。这一轮的产物是可追溯的状态和排查入口,不是已经完成的修复。需要改代码时,可转到 gh-fix-ci 使用指南。

三个容易卡住的地方

终端能用,OpenClaw 却说没登录。 让 Agent 在自己的执行环境运行 gh --version 和 gh auth status --hostname github.com。Gateway 可能运行在另一台机器、容器或另一个用户下;它的 PATH 和配置目录不一定与桌面终端一致。GH_CONFIG_DIR 控制配置位置,进程中的 GH_TOKEN / GITHUB_TOKEN 会优先于已保存的凭据。检查实际服务环境,别把令牌粘贴到对话里,也不需要使用 --show-token。

看不到私有 PR 或日志。 先核对账号、仓库 URL 和访问权限,再看组织的授权要求;“找不到”或“读取失败”不能当成 PR 已关闭、CI 已通过。细粒度令牌读取 job 日志需要目标仓库的 Actions 读取权限,令牌能访问某个公开仓库也不能证明它可读这个私有仓库。

日志为空或大文件下载失败。 先确认 job 已结束且 ID 正确;当前 gh run view 文档也说明了日志关联、缺失 job 与 UNKNOWN STEP 的限制。旧问题 #11059 中,ptorgalmath-gpsw 在 gh 2.74.0 下报告了大型 run 日志压缩包下载失败;维护者建议改读单个 job 的日志,作者随后反馈此路径可用。它提供一种排查分支,不代表所有当前版本都会发生同样的问题。[13]

已确认 job 后,可使用官方的单 job 日志接口:

命令
gh api repos/OWNER/REPO/actions/jobs/JOB_ID/logs

这返回整个 job 的原始文本,不等同于 --log-failed 的失败步骤筛选。仍无法读取时,保留该检查链接、具体错误与待查项,让简报明确停在哪里。

你的首次任务进行得怎么样?

选择项通过网站统计帮助我们了解常见卡点。屏蔽统计可能导致无法送达;具体问题请通过邮件反馈。

参考来源

  1. github SKILL.md — @steipete/github 1.0.0steipete
  2. OpenClaw github SKILL.mdOpenClaw maintainers
  3. OpenClaw Skills CLIOpenClaw maintainers
  4. Installing gh on macOSGitHub CLI maintainers
  5. gh auth loginGitHub CLI maintainers
  6. gh auth statusGitHub CLI maintainers
  7. gh pr viewGitHub CLI maintainers
  8. gh pr checksGitHub CLI maintainers
  9. gh run listGitHub CLI maintainers
  10. gh run viewGitHub CLI maintainers
  11. Events that trigger workflows — pull_requestGitHub
  12. Download job logs for a workflow runGitHub
  13. Unable to view job logs gh run view --log — #11059ptorgalmath-gpsw; GitHub CLI maintainers ·
  14. gh environment variablesGitHub CLI maintainers
  15. GitHub CLI v2.102.0 — run/job JSON 字段GitHub CLI maintainers
发现过期或有误的信息?告诉我们

继续发现

其他值得了解的技能。