Langsung ke konten utama
Tutorial ini nunjukin cara nyetel code review pakai Cursor CLI di GitHub Actions. Workflow-nya bakal menganalisis pull request, nemuin masalah, dan ngepost masukan sebagai komentar.
Buat kebanyakan pengguna, kami nyaranin pakai Bugbot aja. Bugbot ngasih automated code review terkelola tanpa perlu setup. Pendekatan CLI ini berguna buat ngejelajahi kapabilitas dan kustomisasi tingkat lanjut.
Tinjauan kode otomatis yang menampilkan komentar inline di pull request

Konfigurasi autentikasi

Siapkan API key dan secret repositori untuk mengautentikasi Cursor CLI di GitHub Actions.

Menyiapkan izin agen

Bikin file konfigurasi buat ngontrol tindakan yang bisa dilakukan agen. Ini mencegah operasi yang nggak diinginkan seperti nge-push kode atau bikin pull request. Bikin .cursor/cli.json di root repositori lo:
{
  "izin": {
    "tolak": [
      "Shell(git push)",
      "Shell(gh pr create)",
      "Tulis(**)"
    ]
  }
}
Konfigurasi ini bikin agent bisa baca file dan pakai GitHub CLI buat komentar, tapi ngeblok dia buat ngubah apa pun di repositori lo. Lihat permissions reference buat opsi konfigurasi lainnya.

Bangun workflow GitHub Actions

Sekarang kita bangun workflow-nya langkah demi langkah.

Setel trigger workflow

Bikin .github/workflows/cursor-code-review.yml dan konfigurasikan supaya jalan saat ada pull request:
name: Tinjauan Kode Cursor

on:
  pull_request:
    types: [opened, synchronize, reopened, ready_for_review]

jobs:
  code-review:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
    
    steps:

Checkout repositori

Tambahkan langkah checkout untuk mengakses kode pada pull request:
- name: Checkout repository
  uses: actions/checkout@v4
  with:
    fetch-depth: 0
    ref: ${{ github.event.pull_request.head.sha }}

Instal CLI Cursor

Tambahkan langkah instalasi CLI:
- name: Instal Cursor CLI
  run: |
    curl https://cursor.com/install -fsS | bash
    echo "$HOME/.cursor/bin" >> $GITHUB_PATH

Konfigurasi review agent

Sebelum nerapin langkah full review, yuk pahami anatomi review prompt kita. Bagian ini ngejelasin gimana kita pengin agent berperilaku: Objective: Kita pengin agent nge-review PR diff saat ini dan cuma nandain isu yang jelas dengan tingkat keparahan tinggi, lalu ninggalin komentar inline yang sangat singkat (1–2 kalimat) hanya di baris yang berubah, dengan ringkasan singkat di akhir. Ini bantu jaga rasio signal-to-noise tetap seimbang. Format: Kita pengin komentar yang pendek dan to the point. Kita pakai emoji biar nge-scan komentar lebih gampang, dan kita mau ringkasan high-level dari full review di bagian akhir. Submission: Saat review selesai, kita pengin agent nyertakan komentar pendek berdasarkan temuan selama review. Agent harus submit satu review yang berisi komentar inline plus ringkasan yang ringkas. Edge cases: Kita perlu nangani:
  • Komentar yang sudah ada dan udah diselesaikan: agent harus nandain sebagai selesai ketika sudah di-address
  • Hindari duplikasi: agent harus skip komentar kalau feedback serupa sudah ada di atau dekat baris yang sama
Final prompt: Prompt lengkap ini nggabungin semua requirement perilaku buat bikin feedback yang fokus dan bisa ditindaklanjuti Sekarang yuk implement langkah review agent:
- name: Lakukan code review
  env:
    CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
    GH_TOKEN: ${{ github.token }}
  run: |
    cursor-agent --force --model "$MODEL" --output-format=text --print "Kamu berjalan di GitHub Actions runner yang melakukan code review otomatis. gh CLI tersedia dan sudah diautentikasi via GH_TOKEN. Kamu boleh berkomentar di pull request.
    
    Context:
    - Repo: ${{ github.repository }}
    - PR Number: ${{ github.event.pull_request.number }}
    - PR Head SHA: ${{ github.event.pull_request.head.sha }}
    - PR Base SHA: ${{ github.event.pull_request.base.sha }}
    
    Objectives:
    1) Cek ulang komentar review yang sudah ada dan balas resolved kalau sudah ditangani
    2) Review diff PR saat ini dan tandai hanya isu yang jelas dengan tingkat keparahan tinggi
    3) Tinggalkan komentar inline yang sangat singkat (1–2 kalimat) hanya pada baris yang berubah, plus ringkasan singkat di akhir
    
    Procedure:
    - Dapatkan komentar yang ada: gh pr view --json comments
    - Dapatkan diff: gh pr diff
    - Jika isu yang dilaporkan sebelumnya tampak sudah diperbaiki oleh perubahan di sekitarnya, balas: ✅ Isu ini tampaknya sudah terselesaikan oleh perubahan terbaru
    - Hindari duplikasi: lewati jika umpan balik serupa sudah ada pada atau dekat baris yang sama
    
    Commenting rules:
    - Maksimal 10 komentar inline total; prioritaskan isu yang paling kritis
    - Satu isu per komentar; tempatkan tepat pada baris yang berubah
    - Nada santai, spesifik, dan dapat ditindaklanjuti; jangan sebutkan otomatis atau tingkat keyakinan tinggi
    - Gunakan emoji: 🚨 Kritis 🔒 Keamanan ⚡ Performa ⚠️ Logika ✅ Terselesaikan ✨ Peningkatan
    
    Submission:
    - Kirim satu review yang berisi komentar inline plus ringkasan singkat
    - Hanya gunakan: gh pr review --comment
    - Jangan gunakan: gh pr review --approve atau --request-changes"
.
├── .cursor/
│   └── cli.json
├── .github/
│   └── workflows/
│       └── cursor-code-review.yml

Tes reviewer lo

Bikin pull request percobaan buat ngecek workflow-nya jalan dan agen ngepost komentar review dengan feedback emoji.
Pull request yang menampilkan komentar review otomatis dengan emoji dan feedback inline pada baris tertentu

Langkah berikutnya

Sekarang kamu sudah punya sistem code review otomatis yang berfungsi. Pertimbangkan peningkatan berikut:
  • Siapkan workflow tambahan untuk memperbaiki kegagalan CI
  • Konfigurasikan level review yang berbeda untuk branch yang berbeda
  • Integrasikan dengan proses code review tim kamu yang sudah ada
  • Kustomisasi perilaku agent untuk tipe file atau direktori yang berbeda
I