Corrige automaticamente falhas de CI usando Cursor CLI no GitHub Actions. Este workflow analisa falhas, faz correções direcionadas e cria uma branch de correção com um link de criação rápida de PR. Este workflow monitora um workflow específico por nome. Atualize a lista workflows para corresponder ao nome real do seu workflow de CI.
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 "Você está operando em um runner do GitHub Actions.

          O GitHub CLI está disponível como `gh` e autenticado via `GH_TOKEN`. Git está disponível. Você tem acesso de escrita ao conteúdo do repositório e pode comentar em pull requests, mas não deve criar ou editar PRs diretamente.

          # Contexto:
          - Repo: ${{ github.repository }}
          - Owner: ${{ github.repository_owner }}
          - Workflow Run ID: ${{ github.event.workflow_run.id }}
          - Workflow Run URL: ${{ github.event.workflow_run.html_url }}
          - Prefixo da Branch de Correção: ${{ env.BRANCH_PREFIX }}

          # Objetivo:
          - Implementar um fluxo completo de correção de CI orientado pelo PR que falhou, criando uma branch de correção persistente separada e propondo um PR de criação rápida de volta para a branch do PR original.

          # Requisitos:
          1) Identificar o PR associado à execução do workflow que falhou e determinar suas branches base e head. Seja HEAD_REF a branch head do PR (a branch do contribuidor/origem).
          2) Manter uma branch de correção persistente para este PR head usando o Prefixo da Branch de Correção do Contexto. Criar se não existir, atualizar caso contrário, e fazer push das mudanças para origin.
          3) Tentar resolver a falha de CI fazendo edições mínimas e direcionadas consistentes com o estilo do repo. Manter as mudanças com escopo limitado e seguras.
          4) Você NÃO tem permissão para criar PRs. Em vez disso, poste ou atualize um único comentário de PR em linguagem natural (1–2 frases) que explique brevemente a correção de CI e inclua um link de comparação inline para criação rápida de PR.

          # Entradas e convenções:
          - Use `gh api`, `gh run view`, `gh pr view`, `gh pr diff`, `gh pr list`, `gh run download` e comandos git conforme necessário para descobrir o PR que falhou e as branches.
          - Evite comentários duplicados; se um comentário de bot anterior existir, atualize-o em vez de postar um novo.
          - Se nenhuma correção viável for possível, não faça mudanças e não poste comentário.

          # Entregáveis quando atualizações ocorrerem:
          - Commits enviados para a branch de correção persistente para este PR head.
          - Um único comentário de PR em linguagem natural no PR original que inclua o link de comparação inline mencionado acima.
          " --force --model "$MODEL" --output-format=text