mcpField
G
github-automation

github-automation

github.com/composiohq開発78.3k91 回インストール14 週間前に更新
リポジトリ

github-automation について

Composio のツールキットを通じて、GitHub のリポジトリ、Issue、プルリクエスト、ブランチ、検索、CI/CD を自動化するスキルです。ツールの順序や、マージ前の承認などの安全策をエージェントに示します。

主な機能

  1. 01Issue とプルリクエストのワークフロー
  2. 02リポジトリとブランチの管理
  3. 03コードとコミットの検索
  4. 04ワークフローと CI 状態の確認
  5. 05コラボレーターと保護ルールの管理

活用シーン

  1. 01リポジトリの Issue 作成と追跡
  2. 02プルリクエストのレビューとマージ
  3. 03複数リポジトリからコードやコミットを検索
  4. 04ワークフローとデプロイ状態の確認

MCP 対応

Rube MCP 経由で Composio の GitHub ツールキットを利用します。ワークフローの実行前に、最新のツールスキーマと GitHub 接続の有効状態を確認します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/composiohq/awesome-claude-skills --skill github-automation

インストール後、Claude Code で/github-automationを入力して読み込まれたか確認します。

詳細

Rube MCP による GitHub の自動化

Composio の GitHub ツールキットを通じて、GitHub リポジトリの管理、課題の追跡、プルリクエストのワークフロー、ブランチ操作、CI/CD を自動化します。

ツールキットのドキュメント:composio.dev/toolkits/github

前提条件

  • Rube MCP が接続されている必要があります(RUBE_SEARCH_TOOLS が利用可能)
  • github ツールキットを指定して RUBE_MANAGE_CONNECTIONS で GitHub に接続済みであること
  • 最新のツールスキーマを取得するため、必ず最初に RUBE_SEARCH_TOOLS を呼び出してください

セットアップ

Rube MCP を入手する:クライアントの設定で https://rube.app/mcp を MCP サーバーとして追加します。API キーは不要です。エンドポイントを追加するだけで動作します。

  1. RUBE_SEARCH_TOOLS が応答することを確認し、Rube MCP が利用可能であることを確かめます
  2. github ツールキットを指定して RUBE_MANAGE_CONNECTIONS を呼び出します
  3. 接続が ACTIVE でない場合は、返された認証リンクを開いて GitHub OAuth を完了します
  4. ワークフローを実行する前に、接続ステータスが ACTIVE と表示されていることを確認します

主なワークフロー

1. 課題の作成と管理

使用する場面:ユーザーが GitHub の課題を作成、一覧表示、または管理したい場合

ツールの順序:

  1. GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER - 対象のリポジトリが不明な場合に検索します[前提条件]
  2. GITHUB_LIST_REPOSITORY_ISSUES - 既存の課題を一覧表示します(プルリクエストも含みます)[必須]
  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:変更を含むソースブランチ(存在している必要があります。別のリポジトリの場合は 'username:branch')
  • 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/' で始まり、少なくとも2つのスラッシュを含む必要があります
  • 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:python、repo:owner/repo、extension: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を返します。保護ルールがないものとして扱ってください
  • push の可否は表示ラベルではなく、permissions.push または role_name から判断してください
  • GITHUB_LIST_REPOSITORY_COLLABORATORS はページネーションを使用します。すべてのページを取得してください
  • コラボレーターではないユーザーの場合、GITHUB_GET_REPOSITORY_PERMISSIONS_FOR_A_USER では判断できないことがあります

よくあるパターン

IDの解決
  • リポジトリ名 → owner/repo:GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER
  • PR番号 → PRの詳細:GITHUB_FIND_PULL_REQUESTS の後に GITHUB_GET_A_PULL_REQUEST
  • ブランチ名 → SHA:GITHUB_GET_A_BRANCH
  • ワークフロー名 → ID:GITHUB_LIST_REPOSITORY_WORKFLOWS
ページネーション

すべての一覧エンドポイントはページ単位のページネーションを使用します:

  • page:ページ番号(1から開始)
  • per_page:1ページあたりの結果数(最大100)
  • レスポンスの結果数が per_page より少なくなるまで繰り返します
安全性
  • マージ前に必ずPRのマージ可能な状態を確認してください
  • 破壊的な操作(マージ、削除)には、ユーザーから明示的な確認を得てください
  • マージ前に GITHUB_LIST_CHECK_RUNS_FOR_A_REF でCIの状態を確認してください

既知の注意点

  • IssueとPR:GITHUB_LIST_REPOSITORY_ISSUES は両方を返します。pull_request フィールドを確認してください
  • ページネーションの上限:per_page の最大値は100です。結果が空になるまでページを取得してください
  • ブランチの作成:参照がすでに存在する場合、GITHUB_CREATE_A_REFERENCE は422で失敗します
  • マージの制約:ブランチ保護、失敗したチェック、またはドラフト状態が原因でマージに失敗することがあります
  • コード検索の制限:デフォルトブランチにある384KB未満のファイルのみが対象で、結果は最大1000件です
  • コミット検索:検索条件とともに検索テキストのキーワードが必要です
  • 破壊的な操作:リポジトリの削除は取り消せません。マージも元に戻せません
  • 権限不足による暗黙の除外:push 権限がない場合、ラベル、担当者、マイルストーンは通知なく除外されます

Quick Reference

TaskTool SlugKey Params
List reposGITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USERtype, sort, per_page
Get repoGITHUB_GET_A_REPOSITORYowner, repo
Create issueGITHUB_CREATE_AN_ISSUEowner, repo, title, body
List issuesGITHUB_LIST_REPOSITORY_ISSUESowner, repo, state
Find PRsGITHUB_FIND_PULL_REQUESTSrepo, state, author
Create PRGITHUB_CREATE_A_PULL_REQUESTowner, repo, head, base, title
Merge PRGITHUB_MERGE_A_PULL_REQUESTowner, repo, pull_number, merge_method
List branchesGITHUB_LIST_BRANCHESowner, repo
Create branchGITHUB_CREATE_A_REFERENCEowner, repo, ref, sha
Search codeGITHUB_SEARCH_CODEq
List commitsGITHUB_LIST_COMMITSowner, repo, author, since
Search commitsGITHUB_SEARCH_COMMITS_BY_AUTHORq
List workflowsGITHUB_LIST_REPOSITORY_WORKFLOWSowner, repo
Trigger workflowGITHUB_CREATE_A_WORKFLOW_DISPATCH_EVENTowner, repo, workflow_id, ref
Check CIGITHUB_LIST_CHECK_RUNS_FOR_A_REFowner, repo, ref
List collaboratorsGITHUB_LIST_REPOSITORY_COLLABORATORSowner, repo
Branch protectionGITHUB_GET_BRANCH_PROTECTIONowner, repo, branch

Powered by Composio

コメント