Otomatis memperbaiki kegagalan CI menggunakan Cursor CLI di GitHub Actions. Workflow ini menganalisis kegagalan, membuat perbaikan yang tepat sasaran, dan membuat branch perbaikan dengan link quick-create PR. Workflow ini memantau workflow tertentu berdasarkan nama. Update daftar workflows agar sesuai dengan nama workflow CI yang sebenarnya.
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 "Lo sedang beroperasi di GitHub Actions runner.

          GitHub CLI tersedia sebagai `gh` dan diautentikasi melalui `GH_TOKEN`. Git tersedia. Lo punya akses write ke konten repositori dan bisa comment di pull request, tapi lo gak boleh buat atau edit PR secara langsung.

          # Context:
          - 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 }}

          # Goal:
          - Implementasikan flow perbaikan CI end-to-end yang didorong oleh PR yang gagal, buat branch perbaikan persistent terpisah dan usulkan quick-create PR kembali ke branch PR asli.

          # Requirements:
          1) Identifikasi PR yang terkait dengan workflow run yang gagal dan tentukan base dan head branch-nya. Biarkan HEAD_REF jadi head branch PR (branch contributor/origin).
          2) Maintain branch perbaikan persistent untuk PR head ini menggunakan Fix Branch Prefix dari Context. Buat kalau belum ada, update kalau sudah ada, dan push perubahan ke origin.
          3) Coba resolve kegagalan CI dengan membuat edit minimal dan targeted yang konsisten dengan style repo. Jaga perubahan tetap scoped dan aman.
          4) Lo GAKK punya permission untuk buat PR. Sebagai gantinya, post atau update satu comment PR natural language (1–2 kalimat) yang jelasin secara singkat perbaikan CI dan include link compare inline untuk quick-create PR.

          # Input dan conventions:
          - Gunakan `gh api`, `gh run view`, `gh pr view`, `gh pr diff`, `gh pr list`, `gh run download`, dan git command sesuai kebutuhan untuk discover PR dan branch yang gagal.
          - Hindari duplicate comment; kalau ada comment bot sebelumnya, update aja daripada post yang baru.
          - Kalau gak ada perbaikan yang actionable, jangan buat perubahan dan jangan post comment.

          # Deliverables ketika ada update:
          - Pushed commit ke branch perbaikan persistent untuk PR head ini.
          - Satu comment PR natural language di PR asli yang include link compare inline di atas.
          " --force --model "$MODEL" --output-format=text