GitHub ActionsでCursor CLIを使ってリポジトリの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
このページは役に立ちましたか?