自托管的 GitHub PR 自动审查 Bot。基于 OpenCode SDK + MCP + Bun + Hono。
GitHub Webhook (PR opened / synchronize)
→ git worktree 检出 PR 代码
→ 启动 OpenCode agent
→ agent 分析代码差异并通过 MCP 工具提交 review
Bot 为每个 PR 创建隔离的 git worktree,通过 MCP server 暴露 pr_create_review 和 pr_add_comment 两个工具供 agent 调用。
- Bun >= 1.2
- 一个已注册的 GitHub App,需要以下权限:
- Pull requests: Read & write
- Contents: Read-only
- Webhooks: Pull request events
- 可访问的 OpenCode 兼容 LLM 端点
bun install
cp .env.example .env # 编辑 .env,填入 GitHub App 凭据和 LLM 配置
bun run --hot src/index.ts # 启动服务器,开启热重载GitHub App 的私钥文件(.pem)放到项目根目录,Webhook URL 指向 {your-host}/webhook。
| 变量 | 说明 | 默认值 |
|---|---|---|
GITHUB_APP_ID |
GitHub App ID | — |
GITHUB_WEBHOOK_SECRET |
Webhook 签名密钥 | — |
OPENCODE_DEFAULT_MODEL |
LLM 模型 | zhipuai-coding-plan/glm-5.1 |
其余变量(PORT、HOST、DATA_DIR、GITHUB_APP_PRIVATE_KEY_PATH)有合理默认值,一般无需修改。完整列表见 .env.example。
bun run fmt # 格式化
bun run lint # lint(含 type-aware 规则)提交前执行 fmt → lint。无构建步骤。