
Open Agents GitHub App 创建指南3 个回调 URL 逐一说清【免费下载链接】open-agentsAn open source template for building cloud agents.项目地址: https://gitcode.com/GitHub_Trending/op/open-agentsOpen Agents 是一个开源的云端 AI 编程代理模板cloud agents template内置 Web 界面、代理运行时、沙箱编排与 GitHub 集成。要让 GitHub 仓库接入、代码推送和 PR 自动创建正常工作你必须创建一个 GitHub App并正确配置 3 个回调 URL。本文逐个说清它们的用途、填写位置和对应源码帮你一次配通不再踩坑。为什么是 GitHub App 而不是普通 OAuthOpen Agents 特意不使用单独的 GitHub OAuth App而是直接复用 GitHub App 自带的 Client ID / Client Secret 作为登录提供方再用 App 的 installation token 访问仓库。好处是一个 App 同时搞定「登录」和「仓库读写」两件事支持个人账号和组织org两种安装方式安装/卸载事件可实时同步到数据库 建议把 App 设为public否则组织安装流程会遇到权限问题。3 个关键 URL 总览把YOUR_DOMAIN换成你的生产域名本地开发用http://localhost:3000URL 类型地址作用Callback URLhttps://YOUR_DOMAIN/api/auth/callback/githubGitHub 登录OAuth回跳地址Setup URLhttps://YOUR_DOMAIN/api/github/app/callback安装/卸载 GitHub App 后的同步回调Webhook URLhttps://YOUR_DOMAIN/api/github/webhook接收安装状态与 PR 状态的事件推送回调 URL 一登录回跳/api/auth/callback/github这是 GitHub 登录的标准 OAuth 回跳地址。认证由 Better AuthclientId: NEXT_PUBLIC_GITHUB_CLIENT_ID # GitHub App 的 Client ID clientSecret: GITHUB_CLIENT_SECRET # GitHub App 的 Client Secret用户点击「用 GitHub 登录」后浏览器跳转到 GitHub 授权页授权完成再回跳到这个 URL 完成 token 交换。常见错误误以为要填localhost到生产配置。部署后必须用https://的正式域名本地开发才用http://localhost:3000/api/auth/callback/github。回调 URL 二安装回跳/api/github/app/callback这是 GitHub App 设置里的Setup URL用户在你的网站上完成安装或向组织提交安装请求后GitHub 会带参数回跳到这里。处理逻辑在 route.ts读取 URL 中的installation_id和setup_action参数校验用户是否已登录、是否关联了 GitHub 账号调用 sync.ts 同步该用户所有安装记录到数据库最终重定向回/get-started并附带状态参数如githubapp_installed供前端提示配套的安装跳转入口在 install/route.ts它生成一个防重放的state参数并写入 Cookie用户授权后 Setup URL 回跳时完成闭环。回调 URL 三Webhook/api/github/webhook在 GitHub App 的Webhooks设置里填入https://YOUR_DOMAIN/api/github/webhook并订阅installation、installation_repositories、pull_request三个事件。处理入口 route.ts 会 用GITHUB_WEBHOOK_SECRET校验x-hub-signature-256签名防止伪造请求installation事件安装被删除时清理记录安装变更时更新仓库选择范围pull_request事件PR 被关闭/合并/重新打开时自动同步对应会话状态已归档会话会触发沙箱归档避免资源浪费签名校验函数见 verifySignature这是 Webhook 安全的核心secret 一定要填。环境变量对照清单配置完成后按 apps/web/.env.example 填入以下变量注释中已标明前两个 URL 的用途NEXT_PUBLIC_GITHUB_CLIENT_ID # GitHub App Client ID GITHUB_CLIENT_SECRET # GitHub App Client Secret GITHUB_APP_ID # App 页面底部的数字 ID GITHUB_APP_PRIVATE_KEY # PEM 内容换行转义或 base64 编码 NEXT_PUBLIC_GITHUB_APP_SLUG # App 的 slug安装页 URL 中可见 GITHUB_WEBHOOK_SECRET # Webhook 页签生成的 secretGITHUB_APP_PRIVATE_KEY可以存为「带转义换行的 PEM 原文」也可以存为 base64 编码后的 PEM两种方式都支持解析逻辑在 app.ts。配置步骤速查创建 GitHub App填写 Homepage URL你的域名、Callback URL、Setup URL权限勾选contents、pull_requests、metadata读写在 Webhooks 页签填入 Webhook URL secret订阅上述 3 个事件复制 Client ID/Secret、App ID、Private Key、slug 到环境变量重新部署访问/api/github/connection-status自检返回connected即成功见 route.ts常见问题Q为什么安装后状态显示pending_syncSetup URL 回跳时暂时查不到安装记录属于正常过渡态Webhook 到达后会补齐。Q本地开发要改什么三个 URL 全部换成http://localhost:3000前缀即可鉴权模块已默认放行 localhost:3000见 config.ts。Q忘了填 Webhook secret 会怎样接口直接返回 500GITHUB_WEBHOOK_SECRET is not configured所有事件都会被拒收。按以上 3 个回调 URL 逐一核对配置你的 Open Agents 实例就能完整跑通「GitHub 登录 → 仓库安装 → 代理改代码 → 自动 PR」的全流程。【免费下载链接】open-agentsAn open source template for building cloud agents.项目地址: https://gitcode.com/GitHub_Trending/op/open-agents创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考