github-automation について
Composio のツールキットを通じて、GitHub のリポジトリ、Issue、プルリクエスト、ブランチ、検索、CI/CD を自動化するスキルです。ツールの順序や、マージ前の承認などの安全策をエージェントに示します。
主な機能
- 01Issue とプルリクエストのワークフロー
- 02リポジトリとブランチの管理
- 03コードとコミットの検索
- 04ワークフローと CI 状態の確認
- 05コラボレーターと保護ルールの管理
活用シーン
- 01リポジトリの Issue 作成と追跡
- 02プルリクエストのレビューとマージ
- 03複数リポジトリからコードやコミットを検索
- 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 キーは不要です。エンドポイントを追加するだけで動作します。
RUBE_SEARCH_TOOLSが応答することを確認し、Rube MCP が利用可能であることを確かめますgithubツールキットを指定してRUBE_MANAGE_CONNECTIONSを呼び出します- 接続が ACTIVE でない場合は、返された認証リンクを開いて GitHub OAuth を完了します
- ワークフローを実行する前に、接続ステータスが ACTIVE と表示されていることを確認します
主なワークフロー
1. 課題の作成と管理
使用する場面:ユーザーが GitHub の課題を作成、一覧表示、または管理したい場合
ツールの順序:
GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER- 対象のリポジトリが不明な場合に検索します[前提条件]GITHUB_LIST_REPOSITORY_ISSUES- 既存の課題を一覧表示します(プルリクエストも含みます)[必須]GITHUB_CREATE_AN_ISSUE- 新しい課題を作成します[必須]GITHUB_CREATE_AN_ISSUE_COMMENT- 課題にコメントを追加します[任意]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. プルリクエストの管理
使用する場面:ユーザーがプルリクエストを作成、レビュー、またはマージしたい場合
ツールの順序:
GITHUB_FIND_PULL_REQUESTS- PR を検索して絞り込みます[必須]GITHUB_GET_A_PULL_REQUEST- マージ可能ステータスを含む PR の詳細情報を取得します[必須]GITHUB_LIST_PULL_REQUESTS_FILES- 変更されたファイルを確認します[任意]GITHUB_CREATE_A_PULL_REQUEST- 新しい PR を作成します[必須]GITHUB_CREATE_AN_ISSUE_COMMENT- レビューコメントを投稿します[任意]GITHUB_LIST_CHECK_RUNS_FOR_A_REF- マージ前に CI ステータスを確認します[任意]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. リポジトリとブランチを管理する
使用する場合:ユーザーがリポジトリの作成、ブランチの管理、リポジトリ設定の更新を希望している場合
ツールの順序:
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- ブランチを一覧表示します[必須]GITHUB_CREATE_A_REFERENCE- SHA から新しいブランチを作成します[必須]GITHUB_UPDATE_A_REPOSITORY- リポジトリ設定を更新します[任意]
主なパラメーター:
name:リポジトリ名private:公開範囲を指定するブール値ref:完全な参照パス(例:'refs/heads/new-branch')sha:新しい参照先にするコミット SHAdefault_branch:デフォルトブランチ名
注意点:
GITHUB_CREATE_A_REFERENCEは新しい参照のみを作成します。既存の参照にはGITHUB_UPDATE_A_REFERENCEを使用してくださいrefは 'refs/' で始まり、少なくとも2つのスラッシュを含む必要がありますGITHUB_LIST_BRANCHESはpage/per_pageによるページネーションを行います。空のページになるまで繰り返してくださいGITHUB_DELETE_A_REPOSITORYの削除は恒久的で取り消せません。管理者権限が必要です
4. コードとコミットを検索する
使用する場合:ユーザーがリポジトリ全体からコード、ファイル、コミットを探したい場合
ツールの順序:
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/until:コミットの ISO 8601 日付範囲
注意点:
- コード検索の対象はデフォルトブランチにある384KB未満のファイルのみです
- コード検索で返される結果は最大1000件です
GITHUB_SEARCH_COMMITS_BY_AUTHORでは修飾子に加えてキーワードが必要です。修飾子のみのクエリは使用できませんGITHUB_LIST_COMMITSは空のリポジトリに対して409を返します
5. CI/CD とデプロイを管理する
使用する場合:ユーザーがワークフローの確認、CI ステータスの確認、デプロイの管理を希望している場合
ツールの順序:
GITHUB_LIST_REPOSITORY_WORKFLOWS- GitHub Actions のワークフローを一覧表示します[必須]GITHUB_GET_A_WORKFLOW- ID またはファイル名からワークフローの詳細を取得します[任意]GITHUB_CREATE_A_WORKFLOW_DISPATCH_EVENT- ワークフローを手動で実行します[必須]GITHUB_LIST_CHECK_RUNS_FOR_A_REF- コミット/ブランチの CI ステータスを確認します[必須]GITHUB_LIST_DEPLOYMENTS- デプロイを一覧表示します[任意]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. ユーザーと権限を管理する
使用するタイミング:コラボレーター、権限、またはブランチ保護を確認したい場合
ツールの手順:
GITHUB_LIST_REPOSITORY_COLLABORATORS- リポジトリのコラボレーターを一覧表示します[必須]GITHUB_GET_REPOSITORY_PERMISSIONS_FOR_A_USER- 特定のユーザーのアクセス権を確認します[任意]GITHUB_GET_BRANCH_PROTECTION- ブランチ保護ルールを確認します[必須]GITHUB_UPDATE_BRANCH_PROTECTION- 保護設定を更新します[任意]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
| Task | Tool Slug | Key Params |
|---|---|---|
| List repos | GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER | type, sort, per_page |
| Get repo | GITHUB_GET_A_REPOSITORY | owner, repo |
| Create issue | GITHUB_CREATE_AN_ISSUE | owner, repo, title, body |
| List issues | GITHUB_LIST_REPOSITORY_ISSUES | owner, repo, state |
| Find PRs | GITHUB_FIND_PULL_REQUESTS | repo, state, author |
| Create PR | GITHUB_CREATE_A_PULL_REQUEST | owner, repo, head, base, title |
| Merge PR | GITHUB_MERGE_A_PULL_REQUEST | owner, repo, pull_number, merge_method |
| List branches | GITHUB_LIST_BRANCHES | owner, repo |
| Create branch | GITHUB_CREATE_A_REFERENCE | owner, repo, ref, sha |
| Search code | GITHUB_SEARCH_CODE | q |
| List commits | GITHUB_LIST_COMMITS | owner, repo, author, since |
| Search commits | GITHUB_SEARCH_COMMITS_BY_AUTHOR | q |
| List workflows | GITHUB_LIST_REPOSITORY_WORKFLOWS | owner, repo |
| Trigger workflow | GITHUB_CREATE_A_WORKFLOW_DISPATCH_EVENT | owner, repo, workflow_id, ref |
| Check CI | GITHUB_LIST_CHECK_RUNS_FOR_A_REF | owner, repo, ref |
| List collaborators | GITHUB_LIST_REPOSITORY_COLLABORATORS | owner, repo |
| Branch protection | GITHUB_GET_BRANCH_PROTECTION | owner, repo, branch |
Powered by Composio