GitHub Actions 与评论任务
配置 GitHub App 或自带 token,在 issue、PR、计划任务中运行 OpenCode。
GitHub 集成在 Actions runner 内执行任务。评论中输入 /opencode 或 /oc 可请求解释 issue、修复代码、创建 PR,或修改当前 PR;代码行评论会附带文件、行号与 diff 上下文。
安装与模型
在 GitHub 仓库目录运行:
opencode github install向导会处理 GitHub App 安装、工作流与 secrets。手动配置时,先将 opencode-agent GitHub App 安装到目标仓库,再创建 .github/workflows/opencode.yml,并在 Actions secrets 中保存模型提供商 Key。
官方 Action 入口为 anomalyco/opencode/github@latest。model 必填,采用 provider/model;根据自己的已配置提供商选择实际可用标识,不需要照搬教程中的旧型号。
选择 GitHub 身份
| 模式 | 配置要求 |
|---|---|
| OpenCode GitHub App | 默认方式,通过 OIDC 交换 App installation token,工作流需要 id-token: write |
| 调用方 token | use_github_token: true,通过环境变量 GITHUB_TOKEN 传入 token,不执行 OIDC 交换 |
调用方 token 可以是工作流提供的 token,也可以是作为 secret 保存的 PAT 或其他 App token。该模式不必安装 OpenCode GitHub App,也不要求 id-token: write;仍需按实际动作授予权限。
例如官方列出需要创建分支/PR/issue 时的权限:
permissions:
contents: write
pull-requests: write
issues: write这不是所有工作流都必须开启写权限。官方 checkout 示例使用 actions/checkout@v6 和 persist-credentials: false;不要把 checkout 凭据与 Agent 使用的 token 混为一谈。
事件与任务文本
| 事件 | 任务来源和行为 |
|---|---|
issue_comment | 新建评论中的触发词与请求 |
pull_request_review_comment | PR 代码行评论,带精确 diff 上下文 |
issues | issue 创建/编辑等;必须传 prompt |
pull_request | PR 打开、同步、重新打开等;不传 prompt 时默认审查 PR |
schedule | 定时运行;必须传 prompt,结果进入日志/PR |
workflow_dispatch | Actions 手动运行;必须传 prompt,结果进入日志/PR |
评论模式还需在工作流条件中筛选触发词。计划任务没有评论用户上下文可用于权限检查;预期创建分支和 PR 时需授予 contents: write 与 pull-requests: write。
官方 issue triage 示例增加“账号创建至少 30 天”的过滤条件,这是示例工作流自行设置的防滥用条件,不是 OpenCode 产品固定门槛。
Action 输入
| 输入 | 含义 |
|---|---|
model | 必填,提供商/模型 |
agent | primary agent;未找到时回退配置 default_agent 或 build |
share | 是否分享会话,公开仓库默认 true |
prompt | 覆盖默认任务提示 |
mentions | 逗号分隔、大小写不敏感,默认 /opencode,/oc |
variant | 提供商推理变体 |
oidc_base_url | OIDC 交换 API 地址,默认 https://api.opencode.ai,自建 App 时使用 |
use_github_token | 默认 false;启用调用方 token 模式 |
修改 mentions 后也要对应检查工作流的评论过滤条件。公开仓库的 Action 默认分享与普通 CLI 默认手动分享不同,内容范围见会话分享。
结果在哪里
issue 修复通常创建新分支及 PR;在已有 PR 请求修改会把变更提交到该 PR;解释和讨论任务会回复评论。任务运行在 runner,并不意味着模型请求一定留在 runner 内,仍取决于提供商配置。