mcpField
P
pr-review-ci-fix

pr-review-ci-fix

github.com/composio-communityテスト・品質17.1k487 回インストール14 週間前に更新
リポジトリ

pr-review-ci-fix について

Composio CLIを使い、コマンドラインからGitHubまたはGitLabのPRレビューとCI失敗への対応を行うスキルです。差分の確認、行単位のコメント、ログ分析、修正、プッシュ、再実行まで扱います。

主な機能

  1. 01PR情報と変更ファイルの確認
  2. 02行単位コメント付きレビューの投稿
  3. 03失敗したワークフローの検索とログ取得
  4. 04コード修正、プッシュ、CI再実行
  5. 05GitHubとGitLabに対応

活用シーン

  1. 01PRをレビューして該当行にフィードバック
  2. 02ワークフローログからCI失敗を調査
  3. 03修正をプッシュしてCIの再実行を確認

インストール

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

$npx skills add https://github.com/composio-community/awesome-codex-skills --skill pr-review-ci-fix

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

詳細

PR レビュー + CI 自動修正

Composio CLI を使って、シェルから GitHub/GitLab の PR レビューと CI のトリアージを実行します。ブラウザー、ターミナル、チャットを切り替える必要はありません。

使用するタイミング

  • PR に対して、正確性、スタイル、リスクを含む構造化レビューをインラインコメント付きで行いたい場合。
  • CI が失敗しており、エージェントにログを読み取り、コードを修正して再確認してもらいたい場合。
  • 差分を取得 → 批評 → 修正 → プッシュ → 再実行のサイクルを実行する単一のコマンドが必要な場合。

前提条件

curl -fsSL https://composio.dev/install | bash
composio login
composio link github        # or: composio link gitlab

非インタラクティブな実行では、必要に応じて環境変数 COMPOSIO_API_KEY を設定します。

主なツールキット

検索でスラッグを見つけてから、再利用できるよう固定します。

composio search "list pull request files" --toolkits github
composio search "download workflow logs" --toolkits github
composio search "create pr comment" --toolkits gitlab

よく再利用するスラッグ:

  • GITHUB_GET_A_PULL_REQUEST
  • GITHUB_LIST_PULL_REQUESTS_FILES
  • GITHUB_CREATE_A_REVIEW_FOR_A_PULL_REQUEST
  • GITHUB_LIST_WORKFLOW_RUNS_FOR_A_REPOSITORY
  • GITHUB_DOWNLOAD_WORKFLOW_RUN_LOGS
  • GITLAB_GET_SINGLE_MERGE_REQUEST
  • GITLAB_LIST_MERGE_REQUEST_DISCUSSIONS
  • GITLAB_CREATE_NEW_MERGE_REQUEST_NOTE

初めて使用する前に、必ず composio execute <SLUG> --get-schema で確認してください。

レビューワークフロー

  1. PR のメタデータと差分を取得します:
    composio execute GITHUB_GET_A_PULL_REQUEST \
      -d '{"owner":"acme","repo":"app","pull_number":482}'
    composio execute GITHUB_LIST_PULL_REQUESTS_FILES \
      -d '{"owner":"acme","repo":"app","pull_number":482}'
    
  2. リスクのある箇所(認証、マイグレーション、公開 API、テスト)をレビュー本文にまとめます。
  3. インラインコメント付きでレビューを投稿します:
    composio execute GITHUB_CREATE_A_REVIEW_FOR_A_PULL_REQUEST -d '{
      "owner":"acme","repo":"app","pull_number":482,
      "event":"COMMENT",
      "body":"Overall LGTM with 2 blocking notes.",
      "comments":[
        {"path":"src/auth.ts","line":42,"body":"Missing null check on session"},
        {"path":"src/auth.ts","line":88,"body":"Token TTL is hardcoded; move to config"}
      ]
    }'
    

CI 自動修正ループ

  1. 失敗した実行を見つけます:
    composio execute GITHUB_LIST_WORKFLOW_RUNS_FOR_A_REPOSITORY \
      -d '{"owner":"acme","repo":"app","branch":"feat/billing","status":"failure"}'
    
  2. ログを取得します:
    composio execute GITHUB_DOWNLOAD_WORKFLOW_RUN_LOGS \
      -d '{"owner":"acme","repo":"app","run_id":123456}'
    
  3. 失敗を解析して、ローカルで修正します(エージェントが作業ツリーに修正を書き込みます)。
  4. ローカルの git でコミットしてプッシュし、conclusion=success になるまでステップ 1 を繰り返し確認します。
  5. 各修正コミットについて説明する PR コメントを投稿し、人間のレビュアーが変更内容を確認できるようにします。

ワンショットワークフローファイル

scripts/review-and-fix.ts として保存し、composio run --file ./scripts/review-and-fix.ts -- --pr 482 で実行します:

const pr = process.argv.includes("--pr")
  ? Number(process.argv[process.argv.indexOf("--pr") + 1])
  : null;

const meta = await execute("GITHUB_GET_A_PULL_REQUEST", {
  owner: "acme", repo: "app", pull_number: pr
});
const files = await execute("GITHUB_LIST_PULL_REQUESTS_FILES", {
  owner: "acme", repo: "app", pull_number: pr
});

console.log(JSON.stringify({ meta, files }, null, 2));

GitLab 版

スラッグとパラメーター名を入れ替えます:

composio execute GITLAB_GET_SINGLE_MERGE_REQUEST \
  -d '{"id":"acme/app","merge_request_iid":482}'
composio execute GITLAB_CREATE_NEW_MERGE_REQUEST_NOTE \
  -d '{"id":"acme/app","merge_request_iid":482,"body":"CI fix pushed as commit deadbeef"}'

トラブルシューティング

  • Connection required for github → composio link github
  • 入力形式が不明 → composio execute <SLUG> --get-schema
  • ログのダウンロードサイズが大きい → 生 API に対して composio proxy でストリーミングし、ローカルで grep を実行します
  • レート制限 → 呼び出しを直列化するか、ポーリング頻度を下げます。同じリポジトリに対する --parallel は避けてください

CLI の完全なリファレンス:docs.composio.dev/docs/cli

コメント