GitHub ActionsでCursor CLIを使ってCI失敗を自動修正しよう。このワークフローは失敗を分析して、ピンポイントで修正を行い、クイック作成PRリンク付きの修正ブランチを作成する。 このワークフローは特定のワークフローを名前で監視する。実際のCIワークフロー名に合わせてworkflowsリストを更新してね。
name: Auto Fix CI Failures

on:
  workflow_run:
    workflows: [Test]
    types: [completed]

permissions:
  contents: write
  pull-requests: write
  actions: read

jobs:
  attempt-fix:
    if: >-
      ${{ github.event.workflow_run.conclusion == 'failure' && github.event.workflow_run.name != 'Auto Fix CI Failures' }}
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Install Cursor CLI
        run: |
          curl https://cursor.com/install -fsS | bash
          echo "$HOME/.cursor/bin" >> $GITHUB_PATH

      - name: Configure git identity
        run: |
          git config user.name "Cursor Agent"
          git config user.email "cursoragent@cursor.com"

      - name: Fix CI failure
        env:
          CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
          MODEL: gpt-5
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          BRANCH_PREFIX: ci-fix
        run: |
          cursor-agent -p "君はGitHub Actionsランナー内で動作している。

          GitHub CLIは`gh`として利用可能で、`GH_TOKEN`で認証済みだ。Gitも使える。リポジトリコンテンツへの書き込み権限があり、プルリクエストにコメントできるが、PRを直接作成・編集してはいけない。

          # コンテキスト:
          - リポジトリ: ${{ github.repository }}
          - オーナー: ${{ github.repository_owner }}
          - ワークフロー実行ID: ${{ github.event.workflow_run.id }}
          - ワークフロー実行URL: ${{ github.event.workflow_run.html_url }}
          - 修正ブランチプレフィックス: ${{ env.BRANCH_PREFIX }}

          # 目標:
          - 失敗したPRを起点とするエンドツーエンドのCI修正フローを実装し、独立した永続的な修正ブランチを作成して、元のPRのブランチに戻すクイック作成PRを提案する。

          # 要件:
          1) 失敗したワークフロー実行に関連するPRを特定し、そのベースブランチとヘッドブランチを決定する。HEAD_REFをPRのヘッドブランチ(コントリビューター/オリジンブランチ)とする。
          2) コンテキストの修正ブランチプレフィックスを使って、このPRヘッドの永続的な修正ブランチを維持する。存在しない場合は作成し、そうでなければ更新して、変更をオリジンにプッシュする。
          3) リポジトリのスタイルに合った最小限でピンポイントな編集でCI失敗の解決を試みる。変更は範囲を限定し、安全に保つ。
          4) PRを作成する権限はない。代わりに、CI修正を簡潔に説明し、PRをクイック作成するためのインライン比較リンクを含む自然な言葉のPRコメント(1〜2文)を投稿または更新する。

          # 入力と規約:
          - 失敗したPRとブランチを発見するために、必要に応じて`gh api`、`gh run view`、`gh pr view`、`gh pr diff`、`gh pr list`、`gh run download`、およびgitコマンドを使う。
          - 重複コメントを避ける。以前のボットコメントが存在する場合は、新しいコメントを投稿する代わりに更新する。
          - 実行可能な修正が不可能な場合は、変更を行わず、コメントも投稿しない。

          # 更新が発生した場合の成果物:
          - このPRヘッドの永続的な修正ブランチへのプッシュされたコミット。
          - 上記のインライン比較リンクを含む元のPRへの自然な言葉のPRコメント。
          " --force --model "$MODEL" --output-format=text