mcpField
G
gh-fix-ci

gh-fix-ci

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

gh-fix-ci について

開発者向けのスキルです。gh でプルリクエストの失敗した GitHub Actions チェックを調べ、ログ抜粋を集めて修正計画を作成します。明示的な承認後にのみ変更を実施します。

主な機能

  1. 01失敗した PR チェックの特定
  2. 02GitHub Actions ログの取得
  3. 03失敗箇所の要約
  4. 04承認を求める修正計画
  5. 05承認済み変更の実施
  6. 06PR 状態の再確認

活用シーン

  1. 01失敗したプルリクエストの原因調査
  2. 02対応が必要な CI ログの確認
  3. 03承認済み CI 修正の計画
  4. 04変更後のチェック結果の確認

インストール

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

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

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

同梱ファイルLICENSE.txtscripts/inspect_pr_checks.py

詳細

Gh Pr Checks Plan Fix

概要

gh を使って失敗している PR チェックを特定し、対処可能な失敗について GitHub Actions のログを取得して、失敗箇所の抜粋を要約します。その後、修正計画を提案し、明示的な承認を得てから実装します。

  • 修正計画の作成と承認には plan スキルを使用します。

前提条件: gh が認証済みであることを確認してください(例: 一度 gh auth login を実行します)。その後、gh コマンドが成功するように、エスカレートされた権限(workflow/repo スコープを含む)で gh auth status を実行します。サンドボックスによって gh auth status がブロックされる場合は、sandbox_permissions=require_escalated を指定して再実行します。

入力

  • repo: リポジトリ内のパス(デフォルトは .)
  • pr: PR 番号または URL(任意。デフォルトは現在のブランチの PR)
  • リポジトリのホストに対する gh の認証

クイックスタート

  • python "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --pr "<number-or-url>"
  • 要約処理に向けた機械可読な出力が必要な場合は --json を追加してください。

ワークフロー

  1. gh の認証を確認します。
    • gh auth login を実行した後、エスカレートされたスコープ(workflow/repo)で、リポジトリ内で gh auth status を実行します。
    • サンドボックス内での認証ステータス確認が失敗する場合は、ネットワークおよびキーリングへのアクセスを許可するために、sandbox_permissions=require_escalated を指定してコマンドを再実行します。
    • 未認証の場合は、先に進む前にユーザーにログインを依頼します。
  2. PR を特定します。
    • 現在のブランチの PR を優先します: gh pr view --json number,url。
    • ユーザーが PR 番号または URL を指定した場合は、それをそのまま使用します。
  3. 失敗しているチェックを調査します(GitHub Actions のみ)。
    • 推奨: 同梱のスクリプトを実行します(gh のフィールドの変更や、ジョブログのフォールバックに対応します)。
      • python "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --pr "<number-or-url>"
      • 機械可読な出力が必要な場合は --json を追加します。
    • 手動による代替手順:
      • gh pr checks <pr> --json name,state,bucket,link,startedAt,completedAt,workflow
        • フィールドが拒否された場合は、gh が報告する利用可能なフィールドを指定して再実行します。
      • 失敗している各チェックについて、detailsUrl から run ID を抽出し、次を実行します:
        • gh run view <run_id> --json name,workflowName,conclusion,status,url,event,headBranch,headSha
        • gh run view <run_id> --log
      • 実行ログに実行中と表示される場合は、ジョブログを直接取得します:
        • gh api "/repos/<owner>/<repo>/actions/jobs/<job_id>/logs" > "<path>"
  4. GitHub Actions 以外のチェックを対象外とします。
    • detailsUrl が GitHub Actions の実行でない場合は、外部のものとして表示し、URL のみを報告します。
    • Buildkite やその他のプロバイダーは調査しません。ワークフローは簡潔に保ちます。
  5. ユーザー向けに失敗内容を要約します。
    • 失敗したチェック名、実行 URL(ある場合)、および簡潔なログの抜粋を示します。
    • ログが欠落している場合は、その旨を明示します。
  6. 計画を作成します。
    • plan スキルを使用して簡潔な計画を作成し、承認を依頼します。
  7. 承認後に実装します。
    • 承認された計画を適用し、差分とテストを要約して、PR を作成するかどうかを確認します。
  8. ステータスを再確認します。
    • 変更後は、関連するテストの再実行と、gh pr checks による確認を提案します。

同梱リソース

scripts/inspect_pr_checks.py

失敗している PR チェックを取得し、GitHub Actions のログを取り出して、失敗箇所の抜粋を抽出します。失敗が残っている場合は非ゼロで終了するため、自動化で使用できます。

使用例:

  • python "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --pr "123"
  • python "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --pr "https://github.com/org/repo/pull/123" --json
  • python "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --max-lines 200 --context 40

コメント