mcpField
G
gh-fix-ci

gh-fix-ci

github.com/davila7クラウド・DevOps33.0k325 回インストール1 日前に更新
リポジトリ

gh-fix-ci について

gh-fix-ciは、GitHubのプルリクエストで失敗したチェックを調べる開発者向けスキルです。GitHub Actionsのログから問題点をまとめ、承認後に実施する修正計画を作成します。

主な機能

  1. 01失敗したプルリクエストチェックの調査
  2. 02GitHub Actionsログの取得
  3. 03失敗箇所の抽出と要約
  4. 04承認を前提とした修正計画の作成
  5. 05変更後のステータス再確認

活用シーン

  1. 01現在のブランチのプルリクエスト失敗の診断
  2. 02指定したプルリクエストのCIログ確認
  3. 03承認後の修正計画と実施

インストール

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

$npx skills add https://github.com/davila7/claude-code-templates --skill gh-fix-ci

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

詳細

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

コメント