Pull request(拉取请求)
一个 pull request 里包含了审阅者可能想知道的每一个细节,却唯独没有作者当时脑子里的那份上下文。给这个 PR 配一份讲解,几分钟内就能把这份上下文补给审阅者:这次改动是为了什么、它是怎么实现的,以及哪些地方值得多看一眼。
这是一个例子,由这个 action 自己的仓库上的一个 PR 自动生成:Scrimba PR Guide Workflow。
三种获取方式
通过你的编码智能体。 连接 Claude Code,或者任何支持 MCP 的工具,直接让它解释这个 PR。智能体本身就拿着仓库,它会读 diff、周围的代码和历史记录,然后自己写出讲解内容。不需要在仓库里装任何东西。
每个 PR 自动生成。 添加 Scrimba PR Explainer 这个 GitHub Action,之后每个 pull request 一开出来就会自动生成一份讲解,以评论的形式发给审阅者。
通过 ChatGPT 或 Codex。 安装好 @Explain Video Generator 插件 后,直接让它给你正在看的这个 pull request 生成一段视频。Codex 本身能拿到代码,所以它的工作方式和编码智能体一样。在 ChatGPT 里,你需要先粘贴 diff 或附上改动的文件。
Chrome 扩展 并不适合干这个。它讲解的是你正在看的这个页面,所以在 pull request 页面上,它只能看到 GitHub 渲染出来的内容,看不到背后的仓库。
这个 GitHub Action
scrimba/pr-explainer 是 Scrimba 自己的 GitHub Action。每当有 pull request 进入待审阅状态,它就会在检出的代码上运行 Claude Code,通过 agent 插件与 CI 端点 把讲解流式传给 Scrimba,并在 pull request 上维护一条评论,随时更新链接。
你需要准备什么
- 一个开启了 Actions 功能的 GitHub 仓库。
- Node.js 20.12 或更新版本,安装程序需要用到。
- Claude Code。这个 action 依赖你订阅账号下的 Claude Code OAuth token 运行,不涉及任何 API key。
- 可选:GitHub CLI,用
gh auth login登录后,安装程序就能帮你存储 token。
配置步骤
在仓库的本地检出目录中运行安装程序:
npx pr-explainer它会写入 .github/workflows/scrimba-pr-explainer.yml,然后询问是否要设置 workflow 所需的那一个 secret。选是之后,它会帮你运行 claude setup-token,或者让你自己粘贴一个 token,然后把它以 SCRIMBA_PR_EXPLAINER_CLAUDE_CODE_OAUTH_TOKEN 的名字存到仓库里。
安装程序不会自动提交任何内容。把 workflow 文件提交并推送上去,这个 action 就正式生效了。
如果你跳过了自动配置,或者本地没有 GitHub CLI,可以自己手动执行这两步:
claude setup-token
gh secret set SCRIMBA_PR_EXPLAINER_CLAUDE_CODE_OAUTH_TOKENpull request 上会发生什么
当 pull request 被创建、重新打开、有新提交,或者被标记为可供审阅时,这个 workflow 就会运行。草稿状态的 pull request 会被跳过,直到它被标记为可供审阅为止。
任务会检出 pull request 的合并提交,把 PR 的标题、描述、关联的 issue 以及 diff 交给 Claude Code。它会读取当前状态下改动过的文件、周围的代码以及相关测试,然后写出讲解内容。它绝不会修改仓库本身。
pull request 上会立刻出现一条评论,并随着运行进度不断更新:
- 排队中,Claude Code 开始运行后变成生成中。
- 完成,附带一个观看讲解链接。这个链接在讲解视频还在生成过程中就会出现,所以你可以在运行结束之前就开始观看。
- 已跳过,附带一行原因,出现在改动太小、不值得做成视频的情况下:比如修个错别字、纯格式调整、改个注释,或者更新 lockfile。
- 失败,附带一个指向 workflow 日志的链接。
这份讲解只是个辅助工具,不是合并的门槛:运行失败绝不会阻止合并,检查项照样会通过。如果有新的提交推送上来,正在进行中的运行会被取消,并针对新提交重新开始一次。
讲解内容涵盖什么
每一份讲解都按三幕来组织:
- 背景铺陈。 用大白话说明这个 PR 是为了什么,以及它涉及系统的哪些部分,通过跟随一个真实事件走一遍这些部分来做引入。
- 实现方式。 这次改动新增或修改的流程,以并排的 diff 幻灯片 形式呈现,指针会精确停在具体代码行上,必要时还会配上图表或动画——当结构或动态过程比代码本身更能说明问题的时候。
- 问题清单。 智能体能够核实的问题,每张幻灯片讲一个,包含出问题的具体场景和最小的修复方式,并给出一个明确的判断:这个问题是否应该阻止合并。如果 PR 干干净净没问题,也会有一张幻灯片说明这一点。
这份讲解全部基于真实代码和 diff 来讲解,绝不会用到生成式图片。
谁能观看
这份讲解是不公开索引的:拿到链接的任何人都能观看,不需要 Scrimba 账号。正因如此,这个链接才能让每一个查看 pull request 的人都能用。
一开始它不属于任何人。第一个打开链接、登录并认领它的人,会成为它的所有者,之后可以自行控制它的可见性。参见隐私、认领与分享。
开源仓库
在公开仓库中,pull request 上的评论本身是公开的,评论里的链接自然也是公开的。谁先认领这份讲解,谁就拥有它。
Fork 仓库
来自 fork 的 pull request 默认会被跳过,workflow 会在设置项上方的评论里说明原因。智能体读取 pull request 内容时,能访问检出的仓库以及传给这个任务的 token,所以来自 fork 的 PR 有可能夹带专门针对它的指令。
只有当你信任每一个能对这个仓库发起 pull request 的 fork 时,才应该把 allow-forks 设为 true。
手动运行
这个 workflow 也可以从 Actions 标签页手动启动。选择 Scrimba PR Explainer,点击 Run workflow,输入一个 PR 编号即可。这样可以在不产生新提交的情况下重新生成讲解。
可选参数
下面这些参数写在 workflow 文件中 action 步骤的 with: 下面。
| 参数 | 默认值 | 作用 |
|---|---|---|
pr-number | 触发事件对应的 PR | 要讲解哪一个 pull request |
model | Claude Code 的默认模型 | 要运行的 Claude 模型,比如 opus 或 claude-opus-5-5 |
allow-forks | false | 来自 fork 的 pull request 是否也生成讲解 |
agents | claude | 由哪个智能体来撰写讲解,目前只支持 Claude |
常见问题排查
运行失败,提示“Missing SCRIMBA_PR_EXPLAINER_CLAUDE_CODE_OAUTH_TOKEN secret”。 说明仓库上还没设置这个 secret。运行配置步骤里的那两条命令即可。
没有出现任何评论。 检查一下这个 pull request 是不是草稿状态、是不是来自 fork 而不是同一个仓库,以及 workflow 文件的 permissions 下是否还保留着 issues: write,步骤的 env 里是否还有 GH_TOKEN。安装程序会自动写好这些配置。

