用途
GitHub 是一个基于 Git 的网页版版本控制与协作平台,开发者使用它托管、审查和管理代码,同时跟踪和解决议题(Issue)。本技能用于通过 Membrane CLI 与 GitHub 交互,适合在用户需要管理项目管理与工单数据、记录和工作流,或需要与 GitHub 数据交互时使用。
主要能力
该技能封装了一组针对 GitHub 的常用操作,涵盖:
- 列表类:列出议题、拉取请求、用户仓库、组织仓库、提交、分支、发布。
- 获取类:获取特定议题、拉取请求、仓库。
- 创建类:创建议题、拉取请求、仓库、发布、议题评论、PR 审查。
- 更新类:更新议题、更新拉取请求。
- 其它:合并拉取请求、搜索议题与 PR。
当内置操作无法覆盖用例时,可通过 Membrane 的代理直接向 GitHub API 发送请求。Membrane 会自动附加基础 URL 并注入正确的认证头,包括凭据过期时的透明刷新。
使用方式
安装 CLI
在终端中安装 Membrane CLI:
npm install -g @membranehq/cli@latest
认证
membrane login --tenant --clientName=<agentType>
根据是否可用交互模式,该命令会打开浏览器进行认证,或在控制台打印授权 URL。无头环境会打印授权 URL,让用户在浏览器中打开;用户完成登录看到代码后,执行:
membrane login complete <code>
任意命令加 --json 可获得机器可读的 JSON 输出。agentType 可选值包括 claude、openclaw、codex、warp、windsurf 等,用于针对所用 harness 调整工具。
连接 GitHub
使用 membrane connection ensure 按应用 URL 或域名查找或创建连接:
membrane connection ensure "https://github.com/" --json
用户在浏览器中完成认证,输出包含新的连接 id。这是获取连接最快的方式。URL 会被规范化为域名并与已知应用匹配;若未找到应用,则自动创建应用并构建连接器。
若返回的连接状态为 READY,可直接跳到下一步。
若连接处于 BUILDING 状态,轮询直到就绪:
npx @membranehq/cli connection get <id> --wait --json
--wait 标志会长时间轮询(最长 --timeout 秒,默认 30)直到状态变化。持续轮询直到状态不再是 BUILDING。
得到的状态含义:READY 表示连接已完全建立;CLIENT_ACTION_REQUIRED 表示用户或代理需要执行某些操作,clientAction 对象描述所需操作(type 为 "connect" 表示用户需认证,含首次认证和断开连接后的重新认证;为 "provide-input" 表示需要更多信息;description 为人类可读说明;uiUrl 可选,为可完成操作的预构建 UI;agentInstructions 可选,为代理如何以编程方式继续的指引);CONFIGURATION_ERROR 或 SETUP_FAILED 表示出错,查看 error 字段了解详情。用户完成操作后,再次轮询 membrane connection get <id> --json 检查状态是否变为 READY。
搜索操作
使用自然语言描述想要执行的操作进行搜索:
membrane action list --connectionId=CONNECTION_ID --intent "QUERY" --limit 10 --json
应始终在特定连接的上下文中搜索操作。每个结果包含 id、name、description、inputSchema(操作接受的参数)和 outputSchema(返回的内容)。
运行操作
membrane action run <actionId> --connectionId=CONNECTION_ID --json
传递 JSON 参数:
membrane action run <actionId> --connectionId=CONNECTION_ID --input '{"key": "value"}' --json
结果位于响应的 output 字段中。
代理请求
当可用操作无法覆盖用例时,可向 GitHub API 直接发送请求:
membrane request CONNECTION_ID /path/to/endpoint
常用选项:-X/--method 指定 HTTP 方法(GET、POST、PUT、PATCH、DELETE,默认 GET);-H/--header 添加请求头(可重复);-d/--data 请求体(字符串);--json 便捷地发送 JSON 体并设置 Content-Type: application/json;--rawData 原样发送不做处理;--query 查询字符串参数(可重复);--pathParam 路径参数(可重复)。
适用场景
适合需要以编程或代理方式与 GitHub 交互的场景,例如查询仓库信息、批量读取议题与拉取请求、创建与管理议题和 PR、触发审查、创建发布、搜索议题与 PR 等项目管理与工单相关工作流。
限制
资料未提供本技能的具体收费、价格、使用限制或配额信息,暂未提供。除资料中列出的操作外,其余能力需通过代理请求 GitHub API 实现。GitHub 官方 REST 文档见 https://docs.github.com/en/rest。