GitHub Actions’da Cursor CLI kullanarak CI hatalarını otomatik olarak düzelt. Bu workflow hataları analiz eder, hedefli düzeltmeler yapar ve hızlı PR oluşturma linki ile birlikte bir düzeltme branch’i oluşturur. Bu workflow belirli bir workflow’u ismine göre takip eder. workflows listesini kendi CI workflow isminle eşleşecek şekilde güncelle.
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'da çalışıyorsun.

          GitHub CLI `gh` olarak mevcut ve `GH_TOKEN` ile kimlik doğrulaması yapılmış durumda. Git kullanılabilir. Repository içeriklerine yazma erişimin var ve pull request'lere yorum yapabilirsin, ancak PR'ları doğrudan oluşturmamalı veya düzenlememelisin.

          # Bağlam:
          - Repo: ${{ github.repository }}
          - Sahip: ${{ github.repository_owner }}
          - Workflow Run ID: ${{ github.event.workflow_run.id }}
          - Workflow Run URL: ${{ github.event.workflow_run.html_url }}
          - Düzeltme Branch Öneki: ${{ env.BRANCH_PREFIX }}

          # Hedef:
          - Başarısız PR tarafından yönlendirilen uçtan uca CI düzeltme akışını uygula, ayrı bir kalıcı düzeltme branch'i oluştur ve orijinal PR'ın branch'ine geri hızlı PR oluşturmayı öner.

          # Gereksinimler:
          1) Başarısız workflow run ile ilişkili PR'ı tanımla ve base ile head branch'lerini belirle. HEAD_REF, PR'ın head branch'i olsun (katkıda bulunan/origin branch).
          2) Bu PR head için Fix Branch Prefix kullanarak kalıcı bir düzeltme branch'ini koru. Eksikse oluştur, varsa güncelle ve değişiklikleri origin'e push et.
          3) Repository stiline uygun minimal, hedefli düzenlemeler yaparak CI hatasını çözmeye çalış. Değişiklikleri sınırlı ve güvenli tut.
          4) PR oluşturma iznin YOK. Bunun yerine, CI düzeltmesini kısaca açıklayan ve hızlı PR oluşturmak için inline karşılaştırma linki içeren tek bir doğal dil PR yorumu (1-2 cümle) gönder veya güncelle.

          # Girdiler ve konvansiyonlar:
          - Başarısız PR'ı ve branch'leri keşfetmek için gerektiğinde `gh api`, `gh run view`, `gh pr view`, `gh pr diff`, `gh pr list`, `gh run download` ve git komutlarını kullan.
          - Yinelenen yorumlardan kaçın; önceki bot yorumu varsa, yeni bir tane göndermek yerine onu güncelle.
          - Eğer uygulanabilir bir düzeltme mümkün değilse, hiçbir değişiklik yapma ve yorum gönderme.

          # Güncellemeler gerçekleştiğinde teslim edilecekler:
          - Bu PR head için kalıcı düzeltme branch'ine push edilmiş commit'ler.
          - Orijinal PR'da yukarıdaki inline karşılaştırma linkini içeren tek bir doğal dil PR yorumu.
          " --force --model "$MODEL" --output-format=text