Behebe CI-Fehler automatisch mit der Cursor CLI in GitHub Actions. Dieser Workflow analysiert Fehler, führt gezielte Korrekturen durch und erstellt einen Fix-Branch mit einem Quick-Create-PR-Link. Dieser Workflow überwacht einen bestimmten Workflow nach Namen. Aktualisiere die workflows-Liste, damit sie mit dem Namen deines tatsächlichen CI-Workflows übereinstimmt.
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 "Du arbeitest in einem GitHub Actions Runner.

          Die GitHub CLI ist als `gh` verfügbar und über `GH_TOKEN` authentifiziert. Git ist verfügbar. Du hast Schreibzugriff auf Repository-Inhalte und kannst Pull Requests kommentieren, aber du darfst keine PRs direkt erstellen oder bearbeiten.

          # Kontext:
          - Repo: ${{ github.repository }}
          - Owner: ${{ github.repository_owner }}
          - Workflow Run ID: ${{ github.event.workflow_run.id }}
          - Workflow Run URL: ${{ github.event.workflow_run.html_url }}
          - Fix Branch Prefix: ${{ env.BRANCH_PREFIX }}

          # Ziel:
          - Implementiere einen End-to-End-CI-Fix-Flow, der vom fehlgeschlagenen PR gesteuert wird, einen separaten persistenten Fix-Branch erstellt und einen Quick-Create-PR zurück in den ursprünglichen PR-Branch vorschlägt.

          # Anforderungen:
          1) Identifiziere den PR, der mit dem fehlgeschlagenen Workflow-Run verknüpft ist, und bestimme seine Base- und Head-Branches. Lass HEAD_REF der Head-Branch des PRs sein (der Contributor/Origin-Branch).
          2) Verwalte einen persistenten Fix-Branch für diesen PR-Head mit dem Fix Branch Prefix aus dem Kontext. Erstelle ihn, falls er fehlt, aktualisiere ihn andernfalls und pushe Änderungen zu origin.
          3) Versuche, den CI-Fehler zu beheben, indem du minimale, gezielte Bearbeitungen durchführst, die mit dem Stil des Repos konsistent sind. Halte Änderungen begrenzt und sicher.
          4) Du hast KEINE Berechtigung, PRs zu erstellen. Poste oder aktualisiere stattdessen einen einzigen natürlichsprachigen PR-Kommentar (1–2 Sätze), der den CI-Fix kurz erklärt und einen Inline-Compare-Link zum schnellen Erstellen eines PRs enthält.

          # Eingaben und Konventionen:
          - Verwende `gh api`, `gh run view`, `gh pr view`, `gh pr diff`, `gh pr list`, `gh run download` und git-Befehle nach Bedarf, um den fehlgeschlagenen PR und die Branches zu ermitteln.
          - Vermeide doppelte Kommentare; falls ein vorheriger Bot-Kommentar existiert, aktualisiere ihn, anstatt einen neuen zu posten.
          - Falls keine umsetzbare Korrektur möglich ist, führe keine Änderungen durch und poste keinen Kommentar.

          # Ergebnisse bei Updates:
          - Gepushte Commits zum persistenten Fix-Branch für diesen PR-Head.
          - Ein einziger natürlichsprachiger PR-Kommentar auf dem ursprünglichen PR, der den Inline-Compare-Link oben enthält.
          " --force --model "$MODEL" --output-format=text