pr-review-ci-fix について
Composio CLIを使い、コマンドラインからGitHubまたはGitLabのPRレビューとCI失敗への対応を行うスキルです。差分の確認、行単位のコメント、ログ分析、修正、プッシュ、再実行まで扱います。
主な機能
- 01PR情報と変更ファイルの確認
- 02行単位コメント付きレビューの投稿
- 03失敗したワークフローの検索とログ取得
- 04コード修正、プッシュ、CI再実行
- 05GitHubとGitLabに対応
活用シーン
- 01PRをレビューして該当行にフィードバック
- 02ワークフローログからCI失敗を調査
- 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_REQUESTGITHUB_LIST_PULL_REQUESTS_FILESGITHUB_CREATE_A_REVIEW_FOR_A_PULL_REQUESTGITHUB_LIST_WORKFLOW_RUNS_FOR_A_REPOSITORYGITHUB_DOWNLOAD_WORKFLOW_RUN_LOGSGITLAB_GET_SINGLE_MERGE_REQUESTGITLAB_LIST_MERGE_REQUEST_DISCUSSIONSGITLAB_CREATE_NEW_MERGE_REQUEST_NOTE
初めて使用する前に、必ず composio execute <SLUG> --get-schema で確認してください。
レビューワークフロー
- 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}' - リスクのある箇所(認証、マイグレーション、公開 API、テスト)をレビュー本文にまとめます。
- インラインコメント付きでレビューを投稿します:
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 自動修正ループ
- 失敗した実行を見つけます:
composio execute GITHUB_LIST_WORKFLOW_RUNS_FOR_A_REPOSITORY \ -d '{"owner":"acme","repo":"app","branch":"feat/billing","status":"failure"}' - ログを取得します:
composio execute GITHUB_DOWNLOAD_WORKFLOW_RUN_LOGS \ -d '{"owner":"acme","repo":"app","run_id":123456}' - 失敗を解析して、ローカルで修正します(エージェントが作業ツリーに修正を書き込みます)。
- ローカルの
gitでコミットしてプッシュし、conclusion=successになるまでステップ 1 を繰り返し確認します。 - 各修正コミットについて説明する 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
コメント
Markdown 対応