GitHub自动化Skill github-automation

这个技能用于通过Rube MCP自动化GitHub仓库管理、问题跟踪、拉取请求工作流、分支操作和CI/CD。关键词包括GitHub自动化、DevOps、CI/CD、代码工作流、自动化工具、GitHub Actions、版本控制、协作平台。

DevOps 0 次安装 0 次浏览 更新于 3/16/2026

name: github-automation description: 通过Rube MCP(Composio)自动化GitHub仓库、问题、拉取请求、分支、CI/CD和权限。以编程方式管理代码工作流、审查PR、搜索代码和处理部署。 requires: mcp: [rube]

通过Rube MCP实现GitHub自动化

通过Composio的GitHub工具包自动化GitHub仓库管理、问题跟踪、拉取请求工作流、分支操作和CI/CD。

前提条件

  • Rube MCP必须已连接(RUBE_SEARCH_TOOLS可用)
  • 通过RUBE_MANAGE_CONNECTIONS与工具包github建立活跃的GitHub连接
  • 始终先调用RUBE_SEARCH_TOOLS以获取当前工具模式

设置

获取Rube MCP:在客户端配置中将https://rube.app/mcp添加为MCP服务器。无需API密钥——只需添加端点即可工作。

  1. 通过确认RUBE_SEARCH_TOOLS响应来验证Rube MCP可用
  2. 使用工具包github调用RUBE_MANAGE_CONNECTIONS
  3. 如果连接不活跃,按照返回的认证链接完成GitHub OAuth
  4. 在运行任何工作流前确认连接状态显示为活跃

核心工作流

1. 创建和管理问题

使用场景:用户想要创建、列出或管理GitHub问题

工具序列

  1. GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER - 如果未知,查找目标仓库 [前提]
  2. GITHUB_LIST_REPOSITORY_ISSUES - 列出现有问题(包括PR) [必需]
  3. GITHUB_CREATE_AN_ISSUE - 创建新问题 [必需]
  4. GITHUB_CREATE_AN_ISSUE_COMMENT - 向问题添加评论 [可选]
  5. GITHUB_SEARCH_ISSUES_AND_PULL_REQUESTS - 按关键词跨仓库搜索 [可选]

关键参数

  • owner:仓库所有者(用户名或组织),不区分大小写
  • repo:仓库名称,不带.git扩展
  • title:问题标题(创建时必需)
  • body:问题描述(支持Markdown)
  • labels:标签名称数组
  • assignees:GitHub用户名数组
  • state:‘open’、'closed’或’all’用于过滤

常见陷阱

  • GITHUB_LIST_REPOSITORY_ISSUES返回问题和拉取请求;检查pull_request字段以区分
  • 只有具有推送访问权限的用户才能设置分配者、标签和里程碑;否则会静默丢弃
  • 分页:per_page最大100;迭代页面直到为空

2. 管理拉取请求

使用场景:用户想要创建、审查或合并拉取请求

工具序列

  1. GITHUB_FIND_PULL_REQUESTS - 搜索和过滤PR [必需]
  2. GITHUB_GET_A_PULL_REQUEST - 获取详细PR信息,包括可合并状态 [必需]
  3. GITHUB_LIST_PULL_REQUESTS_FILES - 审查更改的文件 [可选]
  4. GITHUB_CREATE_A_PULL_REQUEST - 创建新PR [必需]
  5. GITHUB_CREATE_AN_ISSUE_COMMENT - 发布审查评论 [可选]
  6. GITHUB_LIST_CHECK_RUNS_FOR_A_REF - 在合并前验证CI状态 [可选]
  7. GITHUB_MERGE_A_PULL_REQUEST - 在明确用户批准后合并 [必需]

关键参数

  • head:源分支(必须存在;跨仓库:‘用户名:分支’)
  • base:目标分支以合并到(如’main’)
  • title:PR标题(除非提供issue号码,否则必需)
  • merge_method:‘merge’、‘squash’或’rebase’
  • state:‘open’、‘closed’或’all’

常见陷阱

  • 如果base/head无效、相同或已合并,GITHUB_CREATE_A_PULL_REQUEST会失败并返回422
  • 如果PR是草稿、已关闭或应用分支保护,GITHUB_MERGE_A_PULL_REQUEST可能被拒绝
  • 在合并前始终用GITHUB_GET_A_PULL_REQUEST验证可合并状态
  • 在调用MERGE前要求明确的用户确认

3. 管理仓库和分支

使用场景:用户想要创建仓库、管理分支或更新仓库设置

工具序列

  1. GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER - 列出用户的仓库 [必需]
  2. GITHUB_GET_A_REPOSITORY - 获取详细仓库信息 [可选]
  3. GITHUB_CREATE_A_REPOSITORY_FOR_THE_AUTHENTICATED_USER - 创建个人仓库 [必需]
  4. GITHUB_CREATE_AN_ORGANIZATION_REPOSITORY - 创建组织仓库 [替代]
  5. GITHUB_LIST_BRANCHES - 列出分支 [必需]
  6. GITHUB_CREATE_A_REFERENCE - 从SHA创建新分支 [必需]
  7. GITHUB_UPDATE_A_REPOSITORY - 更新仓库设置 [可选]

关键参数

  • name:仓库名称
  • private:可见性的布尔值
  • ref:完整引用路径(如’refs/heads/new-branch’)
  • sha:指向新引用的提交SHA
  • default_branch:默认分支名称

常见陷阱

  • GITHUB_CREATE_A_REFERENCE只创建新引用;对现有引用使用GITHUB_UPDATE_A_REFERENCE
  • ref必须以’refs/'开头并至少包含两个斜杠
  • GITHUB_LIST_BRANCHES通过page/per_page分页;迭代直到空页
  • GITHUB_DELETE_A_REPOSITORY是永久且不可逆的;需要管理员权限

4. 搜索代码和提交

使用场景:用户想要跨仓库查找代码、文件或提交

工具序列

  1. GITHUB_SEARCH_CODE - 搜索文件内容和路径 [必需]
  2. GITHUB_SEARCH_CODE_ALL_PAGES - 多页代码搜索 [替代]
  3. GITHUB_SEARCH_COMMITS_BY_AUTHOR - 按作者/日期/组织搜索提交 [必需]
  4. GITHUB_LIST_COMMITS - 列出特定仓库的提交 [替代]
  5. GITHUB_GET_A_COMMIT - 获取详细提交信息 [可选]
  6. GITHUB_GET_REPOSITORY_CONTENT - 获取文件内容 [可选]

关键参数

  • q:带有限定符的搜索查询(language:pythonrepo:owner/repoextension:js
  • owner/repo:用于仓库特定的提交列表
  • author:按提交作者过滤
  • since/until:提交的ISO 8601日期范围

常见陷阱

  • 代码搜索只索引默认分支下小于384KB的文件
  • 代码搜索最多返回1000个结果
  • GITHUB_SEARCH_COMMITS_BY_AUTHOR需要除限定符外的关键词;仅限定符查询不被允许
  • 在空仓库上,GITHUB_LIST_COMMITS返回409

5. 管理CI/CD和部署

使用场景:用户想要查看工作流、检查CI状态或管理部署

工具序列

  1. GITHUB_LIST_REPOSITORY_WORKFLOWS - 列出GitHub Actions工作流 [必需]
  2. GITHUB_GET_A_WORKFLOW - 按ID或文件名获取工作流详情 [可选]
  3. GITHUB_CREATE_A_WORKFLOW_DISPATCH_EVENT - 手动触发工作流 [必需]
  4. GITHUB_LIST_CHECK_RUNS_FOR_A_REF - 检查提交/分支的CI状态 [必需]
  5. GITHUB_LIST_DEPLOYMENTS - 列出部署 [可选]
  6. GITHUB_GET_A_DEPLOYMENT_STATUS - 获取部署状态 [可选]

关键参数

  • workflow_id:数字ID或文件名(如’ci.yml’)
  • ref:工作流调度的Git引用(分支/标签)
  • inputs:匹配on.workflow_dispatch.inputs的工作流输入JSON字符串
  • environment:按环境名称过滤部署

常见陷阱

  • GITHUB_CREATE_A_WORKFLOW_DISPATCH_EVENT要求工作流配置有workflow_dispatch触发器
  • 完整路径.github/workflows/main.yml自动简化为main.yml
  • 输入最多10个键值对;必须匹配工作流的on.workflow_dispatch.inputs定义

6. 管理用户和权限

使用场景:用户想要检查协作者、权限或分支保护

工具序列

  1. GITHUB_LIST_REPOSITORY_COLLABORATORS - 列出仓库协作者 [必需]
  2. GITHUB_GET_REPOSITORY_PERMISSIONS_FOR_A_USER - 检查特定用户的访问权限 [可选]
  3. GITHUB_GET_BRANCH_PROTECTION - 检查分支保护规则 [必需]
  4. GITHUB_UPDATE_BRANCH_PROTECTION - 更新保护设置 [可选]
  5. GITHUB_ADD_A_REPOSITORY_COLLABORATOR - 添加/更新协作者 [可选]

关键参数

  • affiliation:协作者过滤的’outside’、‘direct’或’all’
  • permission:按’pull’、‘triage’、‘push’、‘maintain’、'admin’过滤
  • branch:分支保护规则的分支名称
  • enforce_admins:保护是否适用于管理员

常见陷阱

  • 对于未受保护的分支,GITHUB_GET_BRANCH_PROTECTION返回404;视为无保护规则
  • permissions.pushrole_name确定推送能力,而非显示标签
  • GITHUB_LIST_REPOSITORY_COLLABORATORS分页;迭代所有页面
  • 对于非协作者,GITHUB_GET_REPOSITORY_PERMISSIONS_FOR_A_USER可能不确定

常见模式

ID解析

  • 仓库名称 -> 所有者/仓库GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER
  • PR号码 -> PR详情GITHUB_FIND_PULL_REQUESTS然后GITHUB_GET_A_PULL_REQUEST
  • 分支名称 -> SHAGITHUB_GET_A_BRANCH
  • 工作流名称 -> IDGITHUB_LIST_REPOSITORY_WORKFLOWS

分页

所有列表端点使用基于页面的分页:

  • page:页码(从1开始)
  • per_page:每页结果数(最大100)
  • 迭代直到响应返回少于per_page的结果

安全

  • 在合并前始终验证PR可合并状态
  • 对破坏性操作(合并、删除)要求明确的用户确认
  • 在合并前用GITHUB_LIST_CHECK_RUNS_FOR_A_REF检查CI状态

已知陷阱

  • 问题 vs PRsGITHUB_LIST_REPOSITORY_ISSUES返回两者;检查pull_request字段
  • 分页限制per_page最大100;始终迭代页面直到为空
  • 分支创建:如果引用已存在,GITHUB_CREATE_A_REFERENCE失败并返回422
  • 合并防护:合并可能因分支保护、失败检查或草稿状态而失败
  • 代码搜索限制:只索引默认分支下小于384KB的文件;最大1000个结果
  • 提交搜索:需要搜索文本关键词和限定符
  • 破坏性操作:仓库删除不可逆;合并不能撤销
  • 静默权限丢弃:没有推送访问权限时,标签、分配者、里程碑静默丢弃

快速参考

任务 工具模式 关键参数
列出仓库 GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER type, sort, per_page
获取仓库 GITHUB_GET_A_REPOSITORY owner, repo
创建问题 GITHUB_CREATE_AN_ISSUE owner, repo, title, body
列出问题 GITHUB_LIST_REPOSITORY_ISSUES owner, repo, state
查找PRs GITHUB_FIND_PULL_REQUESTS repo, state, author
创建PR GITHUB_CREATE_A_PULL_REQUEST owner, repo, head, base, title
合并PR GITHUB_MERGE_A_PULL_REQUEST owner, repo, pull_number, merge_method
列出分支 GITHUB_LIST_BRANCHES owner, repo
创建分支 GITHUB_CREATE_A_REFERENCE owner, repo, ref, sha
搜索代码 GITHUB_SEARCH_CODE q
列出提交 GITHUB_LIST_COMMITS owner, repo, author, since
搜索提交 GITHUB_SEARCH_COMMITS_BY_AUTHOR q
列出工作流 GITHUB_LIST_REPOSITORY_WORKFLOWS owner, repo
触发工作流 GITHUB_CREATE_A_WORKFLOW_DISPATCH_EVENT owner, repo, workflow_id, ref
检查CI GITHUB_LIST_CHECK_RUNS_FOR_A_REF owner, repo, ref
列出协作者 GITHUB_LIST_REPOSITORY_COLLABORATORS owner, repo
分支保护 GITHUB_GET_BRANCH_PROTECTION owner, repo, branch