Bu eğitim, GitHub Actions içinde Cursor CLI kullanarak kod incelemeyi nasıl ayarlayacağını gösterir. İş akışı pull request’leri analiz eder, sorunları saptar ve yorum olarak geri bildirim yayınlar.
Çoğu kullanıcı için bunun yerine Bugbot kullanmanı öneriyoruz. Bugbot, herhangi bir kurulum gerektirmeden yönetilen otomatik kod incelemesi sunar. Bu CLI yaklaşımı, yetenekleri keşfetmek ve ileri düzey özelleştirmeler için faydalıdır.
Bir pull request’te satır içi yorumları gösteren otomatik kod incelemesi

Kimlik doğrulamayı yapılandır

GitHub Actions’ta Cursor CLI’yi doğrulamak için API anahtarını ve depo sırlarını ayarla.

Aracı izinlerini ayarla

Aracın hangi işlemleri yapabileceğini kontrol etmek için bir yapılandırma dosyası oluştur. Bu, git push yapmak veya pull request açmak gibi istenmeyen işlemleri önler. Depo kök dizininde .cursor/cli.json oluştur:
{
  "permissions": {
    "deny": [
      "Shell(git push)",
      "Shell(gh pr create)",
      "Write(**)"
    ]
  }
}
Bu yapılandırma, aracın dosyaları okumasına ve yorum yapmak için GitHub CLI’ı kullanmasına izin verir ama depoda değişiklik yapmasını engeller. Daha fazla yapılandırma seçeneği için permissions reference sayfasına bak.

GitHub Actions iş akışını oluştur

Şimdi iş akışını adım adım oluşturalım.

İş akışı tetikleyicisini ayarla

.github/workflows/cursor-code-review.yml dosyasını oluştur ve pull request’lerde çalışacak şekilde yapılandır:
name: Cursor Code Review

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

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

Depoyu checkout et

Pull request’teki koda erişmek için checkout adımını ekle:
- name: Checkout repository
  uses: actions/checkout@v4
  with:
    fetch-depth: 0
    ref: ${{ github.event.pull_request.head.sha }}

Cursor CLI’yı yükle

CLI kurulum adımını ekle:
- name: Install Cursor CLI
  run: |
    curl https://cursor.com/install -fsS | bash
    echo "$HOME/.cursor/bin" >> $GITHUB_PATH

İnceleme aracını yapılandır

Tam inceleme adımına geçmeden önce, inceleme prompt’umuzun anatomisini anlayalım. Bu bölüm, aracın nasıl davranmasını istediğimizi özetliyor: Amaç: Aracın mevcut PR diff’ini incelemesini, yalnızca net ve yüksek önem derecesine sahip sorunları işaretlemesini; ardından sadece değişen satırlara çok kısa satır içi yorumlar (1-2 cümle) bırakmasını ve sonunda kısa bir özet eklemesini istiyoruz. Bu, sinyal-gürültü oranını dengede tutar. Biçim: Kısa ve direkt yorumlar istiyoruz. Yorumları taramayı kolaylaştırmak için emoji kullanıyoruz ve sonunda tüm incelemenin üst düzey bir özetini istiyoruz. Gönderim: İnceleme bittiğinde, bulunanlara dayanarak kısa bir yorum eklemesini istiyoruz. Araç, satır içi yorumlar ve özlü bir özet içeren tek bir inceleme göndermeli. Köşe durumları: Şunları ele almamız gerekiyor:
  • Mevcut yorumların çözülmesi: Adreslendiğinde araç bunları tamamlandı olarak işaretlemeli
  • Yinelenmelerden kaçınma: Benzer geri bildirim aynı satırlarda veya yakınında zaten varsa araç yorum yapmayı atlamalı
Son prompt: Tam prompt, odaklı ve uygulanabilir geri bildirim üretmek için bu davranışsal gereksinimlerin tümünü birleştirir Şimdi inceleme aracı adımını uygulayalım:
- name: Perform code review
  env:
    CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
    GH_TOKEN: ${{ github.token }}
  run: |
    cursor-agent --force --model "$MODEL" --output-format=text --print "You are operating in a GitHub Actions runner performing automated code review. The gh CLI is available and authenticated via GH_TOKEN. You may comment on pull requests.
    
    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) Re-check existing review comments and reply resolved when addressed
    2) Review the current PR diff and flag only clear, high-severity issues
    3) Leave very short inline comments (1-2 sentences) on changed lines only and a brief summary at the end
    
    Procedure:
    - Get existing comments: gh pr view --json comments
    - Get diff: gh pr diff
    - If a previously reported issue appears fixed by nearby changes, reply: ✅ This issue appears to be resolved by the recent changes
    - Avoid duplicates: skip if similar feedback already exists on or near the same lines
    
    Commenting rules:
    - Max 10 inline comments total; prioritize the most critical issues
    - One issue per comment; place on the exact changed line
    - Natural tone, specific and actionable; do not mention automated or high-confidence
    - Use emojis: 🚨 Critical 🔒 Security ⚡ Performance ⚠️ Logic ✅ Resolved ✨ Improvement
    
    Submission:
    - Submit one review containing inline comments plus a concise summary
    - Use only: gh pr review --comment
    - Do not use: gh pr review --approve or --request-changes"
.
├── .cursor/
│   └── cli.json
├── .github/
│   └── workflows/
│       └── cursor-code-review.yml

İnceleyicini test et

İş akışının çalıştığını ve agent’ın emoji geri bildirimiyle inceleme yorumları bıraktığını doğrulamak için bir test pull request’i oluştur.
Belirli satırlarda emojiler ve satır içi geri bildirimle otomatik inceleme yorumlarını gösteren pull request

Sonraki adımlar

Artık çalışan bir otomatik kod inceleme sistemin var. Şunları da eklemeyi düşünebilirsin:
  • CI hatalarını düzeltmek için ek iş akışları kur
  • Farklı branch’ler için farklı inceleme seviyeleri yapılandır
  • Ekibinin mevcut kod inceleme süreciyle entegre et
  • Farklı dosya türleri veya dizinler için agent’ın davranışını özelleştir