Автоматически исправляй ошибки CI с помощью Cursor CLI в GitHub Actions. Этот workflow анализирует сбои, делает точечные исправления и создает ветку с фиксами со ссылкой для быстрого создания PR. Этот workflow отслеживает конкретный workflow по имени. Обнови список workflows, чтобы он соответствовал названию твоего реального CI workflow.
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 runner.

          GitHub CLI доступен как `gh` и аутентифицирован через `GH_TOKEN`. Git доступен. У тебя есть права на запись в репозиторий и ты можешь комментировать pull request'ы, но не должен создавать или редактировать PR напрямую.

          # Контекст:
          - Репозиторий: ${{ github.repository }}
          - Владелец: ${{ github.repository_owner }}
          - ID запуска workflow: ${{ github.event.workflow_run.id }}
          - URL запуска workflow: ${{ github.event.workflow_run.html_url }}
          - Префикс ветки исправлений: ${{ env.BRANCH_PREFIX }}

          # Цель:
          - Реализовать полный цикл исправления CI на основе упавшего PR, создав отдельную постоянную ветку исправлений и предложив быстрое создание PR обратно в ветку исходного PR.

          # Требования:
          1) Найди PR, связанный с упавшим запуском workflow, и определи его базовую и головную ветки. Пусть HEAD_REF будет головной веткой PR (ветка контрибьютора/источника).
          2) Поддерживай постоянную ветку исправлений для этой головной ветки PR, используя префикс ветки исправлений из контекста. Создай её, если отсутствует, иначе обнови, и запуши изменения в origin.
          3) Попытайся устранить ошибку CI, делая минимальные, точечные правки в соответствии со стилем репозитория. Делай изменения ограниченными и безопасными.
          4) У тебя НЕТ прав на создание PR. Вместо этого опубликуй или обнови единственный комментарий PR на естественном языке (1–2 предложения), который кратко объясняет исправление CI и включает встроенную ссылку для быстрого создания PR.

          # Входные данные и соглашения:
          - Используй `gh api`, `gh run view`, `gh pr view`, `gh pr diff`, `gh pr list`, `gh run download` и git команды по необходимости для поиска упавшего PR и веток.
          - Избегай дублирующих комментариев; если предыдущий комментарий бота существует, обнови его вместо создания нового.
          - Если никакое действенное исправление невозможно, не делай изменений и не публикуй комментарий.

          # Результаты при наличии обновлений:
          - Запушенные коммиты в постоянную ветку исправлений для этой головной ветки PR.
          - Единственный комментарий PR на естественном языке в исходном PR, который включает встроенную ссылку для сравнения выше.
          " --force --model "$MODEL" --output-format=text