github-automation
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseGitHub Automation via Rube MCP
通过Rube MCP实现GitHub自动化
Automate GitHub repository management, issue tracking, pull request workflows, branch operations, and CI/CD through Composio's GitHub toolkit.
Toolkit docs: composio.dev/toolkits/github
借助Composio的GitHub工具包,自动化GitHub仓库管理、议题追踪、拉取请求工作流、分支操作及CI/CD流程。
Prerequisites
前置条件
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active GitHub connection via with toolkit
RUBE_MANAGE_CONNECTIONSgithub - Always call first to get current tool schemas
RUBE_SEARCH_TOOLS
- 必须已连接Rube MCP(需确保RUBE_SEARCH_TOOLS可用)
- 通过激活GitHub连接,工具包选择
RUBE_MANAGE_CONNECTIONSgithub - 始终先调用获取当前工具的架构信息
RUBE_SEARCH_TOOLS
Setup
配置步骤
Get Rube MCP: Add as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
https://rube.app/mcp- Verify Rube MCP is available by confirming responds
RUBE_SEARCH_TOOLS - Call with toolkit
RUBE_MANAGE_CONNECTIONSgithub - If connection is not ACTIVE, follow the returned auth link to complete GitHub OAuth
- Confirm connection status shows ACTIVE before running any workflows
获取Rube MCP:在客户端配置中添加作为MCP服务器。无需API密钥——只需添加端点即可使用。
https://rube.app/mcp- 确认Rube MCP可用,验证可正常响应
RUBE_SEARCH_TOOLS - 调用并指定工具包为
RUBE_MANAGE_CONNECTIONSgithub - 如果连接未处于ACTIVE状态,按照返回的授权链接完成GitHub OAuth认证
- 在运行任何工作流之前,确认连接状态显示为ACTIVE
Core Workflows
核心工作流
1. Create and Manage Issues
1. 创建与管理议题
When to use: User wants to create, list, or manage GitHub issues
Tool sequence:
- - Find target repo if unknown [Prerequisite]
GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER - - List existing issues (includes PRs) [Required]
GITHUB_LIST_REPOSITORY_ISSUES - - Create a new issue [Required]
GITHUB_CREATE_AN_ISSUE - - Add comments to an issue [Optional]
GITHUB_CREATE_AN_ISSUE_COMMENT - - Search across repos by keyword [Optional]
GITHUB_SEARCH_ISSUES_AND_PULL_REQUESTS
Key parameters:
- : Repository owner (username or org), case-insensitive
owner - : Repository name without .git extension
repo - : Issue title (required for creation)
title - : Issue description (supports Markdown)
body - : Array of label names
labels - : Array of GitHub usernames
assignees - : 'open', 'closed', or 'all' for filtering
state
Pitfalls:
- returns both issues AND pull requests; check
GITHUB_LIST_REPOSITORY_ISSUESfield to distinguishpull_request - Only users with push access can set assignees, labels, and milestones; they are silently dropped otherwise
- Pagination: max 100; iterate pages until empty
per_page
适用场景:用户需要创建、列出或管理GitHub议题
工具执行顺序:
- - 若目标仓库未知,先查找该仓库 [前置步骤]
GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER - - 列出现有议题(包含PR) [必填]
GITHUB_LIST_REPOSITORY_ISSUES - - 创建新议题 [必填]
GITHUB_CREATE_AN_ISSUE - - 为议题添加评论 [可选]
GITHUB_CREATE_AN_ISSUE_COMMENT - - 按关键词跨仓库搜索 [可选]
GITHUB_SEARCH_ISSUES_AND_PULL_REQUESTS
关键参数:
- :仓库所有者(用户名或组织),不区分大小写
owner - :仓库名称(无需带.git后缀)
repo - :议题标题(创建时必填)
title - :议题描述(支持Markdown格式)
body - :标签名称数组
labels - :GitHub用户名数组
assignees - :过滤状态,可选'open'、'closed'或'all'
state
注意事项:
- 会同时返回议题和拉取请求;需检查
GITHUB_LIST_REPOSITORY_ISSUES字段进行区分pull_request - 只有拥有推送权限的用户才能设置经办人、标签和里程碑;否则这些设置会被静默忽略
- 分页:最大值为100;需循环遍历所有页面直到返回空结果
per_page
2. Manage Pull Requests
2. 管理拉取请求
When to use: User wants to create, review, or merge pull requests
Tool sequence:
- - Search and filter PRs [Required]
GITHUB_FIND_PULL_REQUESTS - - Get detailed PR info including mergeable status [Required]
GITHUB_GET_A_PULL_REQUEST - - Review changed files [Optional]
GITHUB_LIST_PULL_REQUESTS_FILES - - Create a new PR [Required]
GITHUB_CREATE_A_PULL_REQUEST - - Post review comments [Optional]
GITHUB_CREATE_AN_ISSUE_COMMENT - - Verify CI status before merge [Optional]
GITHUB_LIST_CHECK_RUNS_FOR_A_REF - - Merge after explicit user approval [Required]
GITHUB_MERGE_A_PULL_REQUEST
Key parameters:
- : Source branch with changes (must exist; for cross-repo: 'username:branch')
head - : Target branch to merge into (e.g., 'main')
base - : PR title (required unless
titlenumber provided)issue - : 'merge', 'squash', or 'rebase'
merge_method - : 'open', 'closed', or 'all'
state
Pitfalls:
- fails with 422 if base/head are invalid, identical, or already merged
GITHUB_CREATE_A_PULL_REQUEST - can be rejected if PR is draft, closed, or branch protection applies
GITHUB_MERGE_A_PULL_REQUEST - Always verify mergeable status with immediately before merging
GITHUB_GET_A_PULL_REQUEST - Require explicit user confirmation before calling MERGE
适用场景:用户需要创建、审核或合并拉取请求
工具执行顺序:
- - 搜索并过滤PR [必填]
GITHUB_FIND_PULL_REQUESTS - - 获取PR详细信息,包括可合并状态 [必填]
GITHUB_GET_A_PULL_REQUEST - - 查看变更文件 [可选]
GITHUB_LIST_PULL_REQUESTS_FILES - - 创建新PR [必填]
GITHUB_CREATE_A_PULL_REQUEST - - 发布审核评论 [可选]
GITHUB_CREATE_AN_ISSUE_COMMENT - - 合并前验证CI状态 [可选]
GITHUB_LIST_CHECK_RUNS_FOR_A_REF - - 获得用户明确批准后执行合并 [必填]
GITHUB_MERGE_A_PULL_REQUEST
关键参数:
- :包含变更的源分支(必须存在;跨仓库时格式为'username:branch')
head - :要合并到的目标分支(例如'main')
base - :PR标题(除非提供
title编号,否则必填)issue - :合并方式,可选'merge'、'squash'或'rebase'
merge_method - :状态,可选'open'、'closed'或'all'
state
注意事项:
- 如果base/head分支无效、相同或已合并,会返回422错误
GITHUB_CREATE_A_PULL_REQUEST - 如果PR是草稿状态、已关闭或存在分支保护规则,会被拒绝
GITHUB_MERGE_A_PULL_REQUEST - 合并前必须立即调用验证可合并状态
GITHUB_GET_A_PULL_REQUEST - 调用MERGE前必须获得用户的明确确认
3. Manage Repositories and Branches
3. 管理仓库与分支
When to use: User wants to create repos, manage branches, or update repo settings
Tool sequence:
- - List user's repos [Required]
GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER - - Get detailed repo info [Optional]
GITHUB_GET_A_REPOSITORY - - Create personal repo [Required]
GITHUB_CREATE_A_REPOSITORY_FOR_THE_AUTHENTICATED_USER - - Create org repo [Alternative]
GITHUB_CREATE_AN_ORGANIZATION_REPOSITORY - - List branches [Required]
GITHUB_LIST_BRANCHES - - Create new branch from SHA [Required]
GITHUB_CREATE_A_REFERENCE - - Update repo settings [Optional]
GITHUB_UPDATE_A_REPOSITORY
Key parameters:
- : Repository name
name - : Boolean for visibility
private - : Full reference path (e.g., 'refs/heads/new-branch')
ref - : Commit SHA to point the new reference to
sha - : Default branch name
default_branch
Pitfalls:
- only creates NEW references; use
GITHUB_CREATE_A_REFERENCEfor existing onesGITHUB_UPDATE_A_REFERENCE - must start with 'refs/' and contain at least two slashes
ref - paginates via
GITHUB_LIST_BRANCHES/page; iterate until empty pageper_page - is permanent and irreversible; requires admin privileges
GITHUB_DELETE_A_REPOSITORY
适用场景:用户需要创建仓库、管理分支或更新仓库设置
工具执行顺序:
- - 列出用户的仓库 [必填]
GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER - - 获取仓库详细信息 [可选]
GITHUB_GET_A_REPOSITORY - - 创建个人仓库 [必填]
GITHUB_CREATE_A_REPOSITORY_FOR_THE_AUTHENTICATED_USER - - 创建组织仓库 [替代选项]
GITHUB_CREATE_AN_ORGANIZATION_REPOSITORY - - 列出分支 [必填]
GITHUB_LIST_BRANCHES - - 基于SHA创建新分支 [必填]
GITHUB_CREATE_A_REFERENCE - - 更新仓库设置 [可选]
GITHUB_UPDATE_A_REPOSITORY
关键参数:
- :仓库名称
name - :可见性布尔值
private - :完整引用路径(例如'refs/heads/new-branch')
ref - :新引用指向的提交SHA值
sha - :默认分支名称
default_branch
注意事项:
- 仅用于创建新引用;现有引用需使用
GITHUB_CREATE_A_REFERENCEGITHUB_UPDATE_A_REFERENCE - 必须以'refs/'开头,且至少包含两个斜杠
ref - 通过
GITHUB_LIST_BRANCHES/page实现分页;需循环遍历直到返回空页面per_page - 操作永久且不可撤销;需要管理员权限
GITHUB_DELETE_A_REPOSITORY
4. Search Code and Commits
4. 搜索代码与提交记录
When to use: User wants to find code, files, or commits across repositories
Tool sequence:
- - Search file contents and paths [Required]
GITHUB_SEARCH_CODE - - Multi-page code search [Alternative]
GITHUB_SEARCH_CODE_ALL_PAGES - - Search commits by author/date/org [Required]
GITHUB_SEARCH_COMMITS_BY_AUTHOR - - List commits for a specific repo [Alternative]
GITHUB_LIST_COMMITS - - Get detailed commit info [Optional]
GITHUB_GET_A_COMMIT - - Get file content [Optional]
GITHUB_GET_REPOSITORY_CONTENT
Key parameters:
- : Search query with qualifiers (
q,language:python,repo:owner/repo)extension:js - /
owner: For repo-specific commit listingrepo - : Filter by commit author
author - /
since: ISO 8601 date range for commitsuntil
Pitfalls:
- Code search only indexes files under 384KB on default branch
- Maximum 1000 results returned from code search
- requires keywords in addition to qualifiers; qualifier-only queries are not allowed
GITHUB_SEARCH_COMMITS_BY_AUTHOR - returns 409 on empty repos
GITHUB_LIST_COMMITS
适用场景:用户需要跨仓库查找代码、文件或提交记录
工具执行顺序:
- - 搜索文件内容和路径 [必填]
GITHUB_SEARCH_CODE - - 多页面代码搜索 [替代选项]
GITHUB_SEARCH_CODE_ALL_PAGES - - 按作者/日期/组织搜索提交记录 [必填]
GITHUB_SEARCH_COMMITS_BY_AUTHOR - - 列出指定仓库的提交记录 [替代选项]
GITHUB_LIST_COMMITS - - 获取提交记录详细信息 [可选]
GITHUB_GET_A_COMMIT - - 获取文件内容 [可选]
GITHUB_GET_REPOSITORY_CONTENT
关键参数:
- :带限定符的搜索查询(例如
q、language:python、repo:owner/repo)extension:js - /
owner:用于指定仓库的提交记录查询repo - :按提交作者过滤
author - /
since:提交记录的ISO 8601格式日期范围until
注意事项:
- 代码搜索仅索引默认分支中小于384KB的文件
- 代码搜索最多返回1000条结果
- 要求查询中除限定符外还需包含关键词;仅使用限定符的查询不被允许
GITHUB_SEARCH_COMMITS_BY_AUTHOR - 空仓库调用会返回409错误
GITHUB_LIST_COMMITS
5. Manage CI/CD and Deployments
5. 管理CI/CD与部署
When to use: User wants to view workflows, check CI status, or manage deployments
Tool sequence:
- - List GitHub Actions workflows [Required]
GITHUB_LIST_REPOSITORY_WORKFLOWS - - Get workflow details by ID or filename [Optional]
GITHUB_GET_A_WORKFLOW - - Manually trigger a workflow [Required]
GITHUB_CREATE_A_WORKFLOW_DISPATCH_EVENT - - Check CI status for a commit/branch [Required]
GITHUB_LIST_CHECK_RUNS_FOR_A_REF - - List deployments [Optional]
GITHUB_LIST_DEPLOYMENTS - - Get deployment status [Optional]
GITHUB_GET_A_DEPLOYMENT_STATUS
Key parameters:
- : Numeric ID or filename (e.g., 'ci.yml')
workflow_id - : Git reference (branch/tag) for workflow dispatch
ref - : JSON string of workflow inputs matching
inputson.workflow_dispatch.inputs - : Filter deployments by environment name
environment
Pitfalls:
- requires the workflow to have
GITHUB_CREATE_A_WORKFLOW_DISPATCH_EVENTtrigger configuredworkflow_dispatch - Full path is auto-stripped to just
.github/workflows/main.ymlmain.yml - Inputs max 10 key-value pairs; must match workflow's definitions
on.workflow_dispatch.inputs
适用场景:用户需要查看工作流、检查CI状态或管理部署
工具执行顺序:
- - 列出GitHub Actions工作流 [必填]
GITHUB_LIST_REPOSITORY_WORKFLOWS - - 通过ID或文件名获取工作流详情 [可选]
GITHUB_GET_A_WORKFLOW - - 手动触发工作流 [必填]
GITHUB_CREATE_A_WORKFLOW_DISPATCH_EVENT - - 检查提交/分支的CI状态 [必填]
GITHUB_LIST_CHECK_RUNS_FOR_A_REF - - 列出部署记录 [可选]
GITHUB_LIST_DEPLOYMENTS - - 获取部署状态 [可选]
GITHUB_GET_A_DEPLOYMENT_STATUS
关键参数:
- :数字ID或文件名(例如'ci.yml')
workflow_id - :用于触发工作流的Git引用(分支/标签)
ref - :符合
inputs定义的工作流输入JSON字符串on.workflow_dispatch.inputs - :按环境名称过滤部署记录
environment
注意事项:
- 要求工作流已配置
GITHUB_CREATE_A_WORKFLOW_DISPATCH_EVENT触发器workflow_dispatch - 完整路径会自动简化为
.github/workflows/main.ymlmain.yml - 输入参数最多支持10个键值对;必须与工作流定义匹配
on.workflow_dispatch.inputs
6. Manage Users and Permissions
6. 管理用户与权限
When to use: User wants to check collaborators, permissions, or branch protection
Tool sequence:
- - List repo collaborators [Required]
GITHUB_LIST_REPOSITORY_COLLABORATORS - - Check specific user's access [Optional]
GITHUB_GET_REPOSITORY_PERMISSIONS_FOR_A_USER - - Inspect branch protection rules [Required]
GITHUB_GET_BRANCH_PROTECTION - - Update protection settings [Optional]
GITHUB_UPDATE_BRANCH_PROTECTION - - Add/update collaborator [Optional]
GITHUB_ADD_A_REPOSITORY_COLLABORATOR
Key parameters:
- : 'outside', 'direct', or 'all' for collaborator filtering
affiliation - : Filter by 'pull', 'triage', 'push', 'maintain', 'admin'
permission - : Branch name for protection rules
branch - : Whether protection applies to admins
enforce_admins
Pitfalls:
- returns 404 for unprotected branches; treat as no protection rules
GITHUB_GET_BRANCH_PROTECTION - Determine push ability from or
permissions.push, not display labelsrole_name - paginates; iterate all pages
GITHUB_LIST_REPOSITORY_COLLABORATORS - may be inconclusive for non-collaborators
GITHUB_GET_REPOSITORY_PERMISSIONS_FOR_A_USER
适用场景:用户需要查看协作者、权限或分支保护规则
工具执行顺序:
- - 列出仓库协作者 [必填]
GITHUB_LIST_REPOSITORY_COLLABORATORS - - 检查特定用户的访问权限 [可选]
GITHUB_GET_REPOSITORY_PERMISSIONS_FOR_A_USER - - 查看分支保护规则 [必填]
GITHUB_GET_BRANCH_PROTECTION - - 更新保护设置 [可选]
GITHUB_UPDATE_BRANCH_PROTECTION - - 添加/更新协作者 [可选]
GITHUB_ADD_A_REPOSITORY_COLLABORATOR
关键参数:
- :协作者过滤选项,可选'outside'、'direct'或'all'
affiliation - :按权限过滤,可选'pull'、'triage'、'push'、'maintain'、'admin'
permission - :保护规则对应的分支名称
branch - :保护规则是否适用于管理员
enforce_admins
注意事项:
- 未受保护的分支调用会返回404;需视为无保护规则
GITHUB_GET_BRANCH_PROTECTION - 通过或
permissions.push判断推送权限,而非显示标签role_name - 支持分页;需遍历所有页面
GITHUB_LIST_REPOSITORY_COLLABORATORS - 非协作者调用可能返回不确定结果
GITHUB_GET_REPOSITORY_PERMISSIONS_FOR_A_USER
Common Patterns
通用模式
ID Resolution
ID解析
- Repo name -> owner/repo:
GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER - PR number -> PR details: then
GITHUB_FIND_PULL_REQUESTSGITHUB_GET_A_PULL_REQUEST - Branch name -> SHA:
GITHUB_GET_A_BRANCH - Workflow name -> ID:
GITHUB_LIST_REPOSITORY_WORKFLOWS
- 仓库名称 -> owner/repo:使用
GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER - PR编号 -> PR详情:先调用再调用
GITHUB_FIND_PULL_REQUESTSGITHUB_GET_A_PULL_REQUEST - 分支名称 -> SHA:使用
GITHUB_GET_A_BRANCH - 工作流名称 -> ID:使用
GITHUB_LIST_REPOSITORY_WORKFLOWS
Pagination
分页处理
All list endpoints use page-based pagination:
- : Page number (starts at 1)
page - : Results per page (max 100)
per_page - Iterate until response returns fewer results than
per_page
所有列表端点均基于页码分页:
- :页码(从1开始)
page - :每页结果数(最大值100)
per_page - 循环遍历直到返回结果数少于
per_page
Safety
安全规范
- Always verify PR mergeable status before merge
- Require explicit user confirmation for destructive operations (merge, delete)
- Check CI status with before merging
GITHUB_LIST_CHECK_RUNS_FOR_A_REF
- 合并前必须验证PR的可合并状态
- 破坏性操作(合并、删除)需获得用户明确确认
- 合并前调用检查CI状态
GITHUB_LIST_CHECK_RUNS_FOR_A_REF
Known Pitfalls
常见问题
- Issues vs PRs: returns both; check
GITHUB_LIST_REPOSITORY_ISSUESfieldpull_request - Pagination limits: max 100; always iterate pages until empty
per_page - Branch creation: fails with 422 if reference already exists
GITHUB_CREATE_A_REFERENCE - Merge guards: Merge can fail due to branch protection, failing checks, or draft status
- Code search limits: Only files <384KB on default branch; max 1000 results
- Commit search: Requires search text keywords alongside qualifiers
- Destructive actions: Repo deletion is irreversible; merge cannot be undone
- Silent permission drops: Labels, assignees, milestones silently dropped without push access
- 议题与PR区分:会同时返回两者;需检查
GITHUB_LIST_REPOSITORY_ISSUES字段pull_request - 分页限制:最大值为100;必须遍历所有页面直到返回空结果
per_page - 分支创建:若引用已存在,会返回422错误
GITHUB_CREATE_A_REFERENCE - 合并限制:分支保护规则、CI失败或草稿状态会导致合并失败
- 代码搜索限制:仅索引默认分支中小于384KB的文件;最多返回1000条结果
- 提交记录搜索:查询中除限定符外必须包含关键词
- 破坏性操作:仓库删除不可撤销;合并操作无法回滚
- 权限静默失效:无推送权限时,标签、经办人、里程碑设置会被静默忽略
Quick Reference
快速参考
| Task | Tool Slug | Key Params |
|---|---|---|
| List repos | | |
| Get repo | | |
| Create issue | | |
| List issues | | |
| Find PRs | | |
| Create PR | | |
| Merge PR | | |
| List branches | | |
| Create branch | | |
| Search code | | |
| List commits | | |
| Search commits | | |
| List workflows | | |
| Trigger workflow | | |
| Check CI | | |
| List collaborators | | |
| Branch protection | | |
Powered by Composio
| 任务 | 工具标识 | 关键参数 |
|---|---|---|
| 列出仓库 | | |
| 获取仓库信息 | | |
| 创建议题 | | |
| 列出议题 | | |
| 查找PR | | |
| 创建PR | | |
| 合并PR | | |
| 列出分支 | | |
| 创建分支 | | |
| 搜索代码 | | |
| 列出提交记录 | | |
| 搜索提交记录 | | |
| 列出工作流 | | |
| 触发工作流 | | |
| 检查CI状态 | | |
| 列出协作者 | | |
| 分支保护规则 | | |
由 Composio 提供支持