ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Composio 中配置自有 GitHub App 认证:安装流程、权限模型与 OAuth 配置实战

Composio 中配置自有 GitHub App 认证:安装流程、权限模型与 OAuth 配置实战 Composio 中配置自有 GitHub App 认证安装流程、权限模型与 OAuth 配置实战【免费下载链接】composioComposio powers 1000 toolkits, tool search, context management, authentication, and a sandboxed workbench to help you build AI agents that turn intent into action.项目地址: https://gitcode.com/GitHub_Trending/co/composio本指南聚焦 Composio 对 GitHub Apps 的官方支持方式如何在 Composio 中接入你自有的 GitHub AppBring Your Own GitHub App理解应用安装与OAuth 凭据配置两条流程的本质区别并掌握 client ID / client secret 的配置方法与权限来源模型。阅读本文后你将能够独立完成自有 GitHub App 在 Composio 中的接入、安装授权与连接建立同时了解 GitHub 组织级访问审批、令牌脱敏等配套注意事项。Composio 支持 GitHub Apps核心结论根据 GitHub FAQ 文档Composio明确支持 GitHub Apps。你无需依赖 Composio 内置的共享 GitHub 应用而是可以将自己创建的 GitHub App 直接接入在 GitHub 开发者设置中创建/拥有一个 GitHub App将其Client ID与Client Secret配置到 Composio 的 GitHub auth config 中用户随后即可通过该应用完成 OAuth 连接并调用 GitHub 工具。这一模式与 自定义 OAuth 配置文档 中描述的Use your own developer credentials使用自有开发者凭据完全一致适用于需要品牌化授权页、自定义权限范围或受组织策略约束的生产场景。配置 GitHub App 凭据Client ID 与 Client Secret将自有 GitHub App 接入 Composio 的第一步是创建自定义 auth config。以 custom-auth-configs.mdx 中的 GitHub 示例为参照完整流程如下1. 获取 OAuth 凭据在 GitHub 的 OAuth Apps / GitHub Apps 设置页面中为你的应用生成OAuth Client ID与Client Secret。这两个值是后续连接流程的身份凭证。2. 设置 Authorized Redirect URI创建 OAuth App 时必须将Authorized Redirect URI配置为 Composio 的回调地址https://backend.composio.dev/api/v1/auth-apps/add这一回调是用户授权完成后 Composio 接收授权码并换取访问令牌的入口配置错误将导致连接流程中断。3. 在 Composio 中创建 auth config在 Composio Dashboard 中完成以下操作选择OAuth2认证方案打开Use your own developer credentials使用自有开发者凭据开关填入上一步获取的 GitHub OAuth Client ID 与 Client Secret点击创建。创建成功后该 auth config 即可被应用直接引用。4. 通过 SDK 发起连接配置完成后在应用中通过 SDK 发起连接并等待用户完成授权Python对应 custom-auth-configs.mdx 的示例# Create a new connected account connection_request composio.connected_accounts.initiate( user_iduser_id, auth_config_idac_1234, ) print(connection_request) # Wait for the connection to be established connected_account connection_request.wait_for_connection() print(connected_account)TypeScript对应 custom-auth-configs.mdx 的示例import { Composio } from composio/core; const composio new Composio({ apiKey: your_api_key }); const userId user_123; const connReq await composio.connectedAccounts.initiate(userId, ac_1234); console.log(connReq.redirectUrl); const connection await composio.connectedAccounts.waitForConnection( connReq.id ); console.log(connection);从源码结构看initiate返回的连接请求对象携带redirectUrl用于引导用户跳转授权waitForConnection则轮询连接状态直至建立成功这一调用链与 AuthConfigs.ts 和 ConnectedAccounts.ts 中定义的模型类型一一对应可作为对接时的接口参考。关键区分应用安装步骤 ≠ OAuth 凭据配置FAQ 文档特别强调了一个极易踩坑的关键点GitHub App 的安装步骤与 OAuth 凭据设置是相互独立的两个流程。OAuth 凭据配置在 Composio 中配置 client ID / client secret解决的是身份认证问题——证明请求来自你的应用GitHub App 安装用户必须先在目标账号或组织上安装该 GitHub App并授予相应仓库访问权限工具调用才能真正生效。也就是说仅仅完成凭据配置并不会自动赋予工具调用权限。用户侧还需要将 GitHub App 安装到相关个人账号或组织在安装过程中明确授予仓库访问范围。缺少安装授权的情况下即使连接建立成功基于 GitHub App 的工具调用也会因缺少安装授权而失败。权限模型来自 App 设置与安装授权而非 auth config scopesFAQ 文档明确了 GitHub App 场景下的权限来源模型GitHub App permissions come from the apps GitHub settings and installation grant, not from auth config scopes.即GitHub App 的权限由两部分决定GitHub App 自身的设置GitHub 开发者设置中为该 App 声明的权限安装授权installation grant用户在安装时按账号/组织授予的实际访问范围。而auth config 中的 scopes 并不决定 GitHub App 的权限。这意味着如果你需要在工具调用中访问仓库、Issues、PR 等资源请直接在 GitHub App 的设置中声明相应权限并在安装时确保授权范围覆盖目标仓库而不是试图通过 auth config 的 scope 参数扩权。当前限制安装链接需手动提供FAQ 文档明确指出现阶段的一个能力边界Composio does not currently provide the GitHub App installation link automatically during this flow.即Composio 目前不会在连接流程中自动生成/注入 GitHub App 的安装链接。内置的安装链接处理能力built-in installation-link handling仍在开发中。因此当前接入的推荐做法是在你的产品/文档中准备好 GitHub App 的安装链接GitHub 开发者设置中生成将安装链接提供给最终用户引导其先完成 App 安装与仓库授权用户安装完成后再进入 Composio 的 OAuth 连接流程完成凭据绑定。流程顺序建议为先安装、后连接以确保连接建立后工具调用立即可用。配套注意事项组织访问、令牌脱敏与触发器围绕 GitHub 认证与连接仓库中的 GitHub 知识库文章 还记录了几项与上述流程直接相关的实践要点建议一并掌握组织访问可能需要组织所有者审批若连接对个人仓库正常、却无法访问组织仓库请检查该组织是否限制了 OAuth App 访问。用户需在 GitHub 的Settings → Applications → Authorized OAuth Apps中选择对应 App 并申请组织访问权限由组织所有者审批通过。在 Composio 中重新连接不会绕过组织策略。连接令牌已脱敏无论使用 Composio 托管还是自有 auth configGitHub 连接账号的 Provider token 都不会出现在 API 响应中。需要调用 GitHub 时请使用 Composio 工具执行或 Proxy Execute不要构造从连接账号数据中读取 OAuth token的流程。GitHub V2 触发器无需预建 Webhook 端点GitHub V2 触发器的 Webhook URL 会在创建触发器实例时自动分配可直接通过/trigger_instances/{slug}/upsert创建或更新触发器无需先调用/webhook_endpoints。品牌化授权体验如需在 GitHub 授权页展示自己的品牌可结合自有 OAuth 凭据与 自定义 OAuth 配置 实现同时可将重定向 URL 路由到自有域名避免用户在跳转路径中看到 Composio 域名。小结Composio 对 GitHub Apps 的支持遵循自有凭据 用户侧安装授权的组合模型在 GitHub FAQ 文档 明确的能力边界内你可以通过配置 client ID / client secret 接入自有 GitHub App但必须理解并处理好安装流程与凭据流程的分离、权限的实际来源App 设置 安装授权以及当前阶段安装链接需手动提供的限制。按照先安装、后连接的顺序推进并结合组织审批、令牌脱敏等配套策略即可在生产环境中稳定地基于 GitHub App 驱动工具调用。【免费下载链接】composioComposio powers 1000 toolkits, tool search, context management, authentication, and a sandboxed workbench to help you build AI agents that turn intent into action.项目地址: https://gitcode.com/GitHub_Trending/co/composio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表