Featured image of post opencode-actions - 一个 coding review agent

opencode-actions - 一个 coding review agent

基于 opencode 构建的 GitHub Action,提供自动化 code review 和 runner 执行能力,支持 Z.AI、智谱及 OpenCode Go 订阅。

语速

为了方便引入 opencode 来做 code review,我构建了一个 github action repo。和 opencode 一起编程来做这个事情不难。

目前主要提供两个功能,一个是 review,另一个是借助 runner 来执行 opencode (也就是直接用 runner 跑 opencode 的 prompt),来跑一下其他的功能。例如改代码,创建新的 issue,根据 issue 创建 PR 等。

稳定性怎么样?

  • 这个 repo 已经经过多个项目的验证,release 的版本是可靠的。
  • 但是要注意 main 分支的版本是快速迭代版本。

如何引入?

在你的 .github/workflows/opencode-review.yml 下添加:

1
2
3
4
5
6
7
8
- name: Run OpenCode review
  uses: sun-praise/opencode-actions/review@v1
  with:
    github-token: ${{ secrets.GITHUB_TOKEN }}

    # only one is enough.
    zhipu-api-key: ${{ secrets.ZHIPU_API_KEY }}
    opencode-go-api-key: ${{ secrets.OPENCODE_GO_API_KEY }}

现在,这个 actions 主要支持的是 Z.AI,ZHIPU,以及 OPENCODE GO 订阅。因此,如果用 ZHIPU,那么在项目中的 secrets 加上自己的 ZHIPU_API_KEY 即可。如果用的是 opencode go 订阅,则需要加上 OPENCODE_GO_API_KEY。

其他的都可以根据默认配置来。默认模型是 zhipuai-coding-plan/glm-5-turbo。如果有更多的配置要求,建议去看原仓库的 README

我之前在 代码审查文章中也有讲过,这个快速地 review 脚本。

差异性

实际上 opencode 自己也有 actions,那么为什么我要再做一个呢?

与官方的差异主要体现在几个方面:

功能上游状态本仓库
Model 默认值 fallback仅 required input三级 fallback(input → MODEL_NAME → 硬编码默认)
Provider 便捷字段zhipu-api-keyopencode-go-api-key
Review prompt 模板中文格式化 review(可合并/有条件合并/不可合并)
Retry 逻辑attempts / retry-profile / retry-on-regex / retry-delay
执行超时timeout-seconds
版本检查OPENCODE_MIN_VERSION
安装重试install-attempts
XDG cache 缓存仅缓存 bin同时缓存 bin + XDG cache

sun-praise/opencode-actions#29 中有详细的说明。

review 效果

可以从 repo 本身的 PR 看到 opencode-actions#30

大概是这个效果:

未来

  • 尝试集成 gemini cli。现在 google 的 GEM 3.1 PRO 模型性价比很高,单位智能是最高的。
  • 集成 MCP 插件功能。opencode review 的时候 MCP 如果有,可能会带来更好的 review 效果。
  • 商业化的插件功能集成