# CI hatasını yapay zeka düzeltsin, PR yorumunu da

Adres: https://agentvera.dev/blog/ci-hatasini-yapay-zeka-duzeltsin/ · Yayın: 2026-10-18

Kırmızı CI ve PR yorumları için yapay zeka ajanı: hangi olayda başlar, hangi sınırlarla çalışır, işi nasıl teslim eder ve sen ana dala almadan önce neye bakarsın.

**Kısaca:**

- AgentVera’da bir kural, GitHub Actions, GitLab CI ya da Jenkins kırmızı olduğunda veya açık bir PR’a depo üyesi yorum yazdığında Claude Code ya da Codex başlatır; yorumlar 2 dakikada bir okunur.
- Ajan kendi worktree’sinde çalışır ve yalnızca commit eder; push’u gizli dosya taramasından sonra AgentVera yapar ve varsayılan dala asla doğrudan push etmez.
- Her kuralın günlük sınırı vardır (varsayılan 5, en fazla 50) ve aynı dal için günde en fazla 2 otomatik CI düzeltmesi denenir; böylece düzeltme sonsuz döngüye girmez.

CI hatasını yapay zekâya düzelttirmek, en sık tekrar eden ve en sıkıcı işlerden birini elinden alır. Bir push atarsın, on dakika sonra GitHub Actions kırmızıdır. Logu açarsın, iki yüz satır kaydırırsın, bir tip hatası ya da unutulmuş bir snapshot bulursun, düzeltir, tekrar push edersin. Aynı şey PR yorumları için de geçerli: “bu değişkenin adını değiştir”, “burada null kontrolü eksik” gibi küçük yorumlar birikir ve her biri bağlam değiştirmeni ister.

Bu yazıda bu işleri bir yapay zekâ ajanına nasıl devredeceğini anlatıyorum: hangi olayda başladığını, hangi sınırlarla çalıştığını, işi nasıl teslim ettiğini ve sen ana dala almadan önce neye bakman gerektiğini.

## Neden elle düzeltmek pahalı?

Kırmızı bir CI’ı düzeltmek çoğu zaman zor değildir. Pahalı olan bağlam değiştirmektir:

- **Başka bir işin ortasındasın.** Kırmızı CI bildirimi gelince elindeki işi bırakırsın.
- **Logu okumak zaman alır.** Asıl hata genelde yüzlerce satırın arasındadır; ilk kırmızı satır çoğu zaman asıl hata değildir.
- **Yerelde tekrar üretmek gerekir.** CI’daki komutu bulup yerelde çalıştırmak, ortam farklarını ayıklamak ayrı bir iştir.
- **Yorumlar parça parça gelir.** Bir incelemede altı yorum varsa altısını da okuyup her birine dönmen gerekir.

Bu işlerin ortak noktası, adımlarının belli olmasıdır. Belli adımları olan iş, bir ajana devredilebilecek iştir.

## Tetikleyiciler: ajan ne zaman başlar?

AgentVera’da otomasyonlar **Detaylar → Otomasyon → Otomasyonlar** bölümündedir. Bir kural, bir olay olduğunda işi kendiliğinden başlatır. Bu yazıyla ilgili iki tetikleyici var:

### CI kırmızı oldu

Bu tetikleyici, CI/CD sekmesine eklediğin sağlayıcıları izler: GitHub Actions, GitLab CI ve Jenkins. **Dallar** alanını boş bırakırsan tüm dallar izlenir; `main, release/*` gibi bir liste yazarsan yalnızca bu dallar.

Bazı çalıştırmalar bilerek atlanır. Fork’tan gelen PR’ların çalıştırmaları ve GitLab’in merge request çalıştırmaları kural tetiklemez. Fork’un dalı ve logu deponun dışındaki birine aittir; kural yalnızca düzeltme gönderebileceğin dallara tepki verir.

### PR’a yorum geldi

Açık PR’lara gelen yeni inceleme ve sohbet yorumları 2 dakikada bir okunur. Burada da filtreler var:

- **Yalnızca depo sahibi, üyesi ya da katkıcısının yorumları sayılır.** Rastgele birinin yorumu ajanı çalıştırmaz.
- **Botların yorumları sayılmaz.** AgentVera’nın kendi yanıtları da işaretlidir ve tekrar işlenmez.
- **Aynı PR’da çalışan bir ajan varsa** yeni yorumlar ona gider; ikinci bir ajan açılmaz.
- **Günlük sınır dolduysa** yorumlar kaybolmaz, sonra yeniden okunur.

PR yorumu ve issue tetikleyicileri için deponun `origin`’i GitHub’da olmalı ve bilgisayarda GitHub girişi yapılmış olmalı.

Olaylar masaüstü uygulaması tarafından izlenir; kuralların çalışması için AgentVera’nın bilgisayarında açık olması gerekir.

### Hazır kurallar

Projede hiç kural yoksa AgentVera hazır kurallar önerir. CI ve PR için ikisi doğrudan iş görür:

| Hazır kural | Ne yapar |
| --- | --- |
| CI kırılınca düzelt | Kırmızı çalıştırmanın logunu alır, düzeltir; özellik dalına push eder, ana dal için PR açar |
| PR yorumlarını işle | Açık PR’lara gelen inceleme yorumlarını uygular, PR dalına push eder ve yanıt yazar |

Diğer ikisi “ajan” etiketli issue’ları yapan ve her pazartesi bağımlılık güncelleyen kurallardır.

## Ajan ne yapar?

Kural tetiklenince ajan yeni bir worktree’de, `ajan/` ile başlayan yeni bir dalda çalışmaya başlar. Dalın tabanı olayın dalıdır: kırmızı çalıştırmanın dalı ya da PR’ın dalı. Senin çalışma klasörüne dokunulmaz. Git tarafından yok sayılan `.env` dosyaları worktree’ye kopyalanır ki testler çalışabilsin, ama hiçbir zaman push edilmez.

Ajan, kuralın **Şablon** alanındaki adımları izler. CI için varsayılan şablon “CI hatasını düzelt”tir:

1. Logdaki ilk gerçek hatayı bul.
2. CI’daki komutu yerelde çalıştırıp hatayı tekrar üret.
3. Kök nedeni düzelt; sorun CI ayarındaysa (workflow, sürüm, ortam değişkeni) onu düzelt.
4. CI komutlarını yerelde yeniden çalıştırıp geçtiğini gör.

PR yorumları için varsayılan şablon “PR yorumlarını işle”dir: her yorumu ve işaret ettiği kodu oku, haklı yorumları uygula, katılmadığın yerde gerekçeni yaz, testleri çalıştır ve yanıtta her yorum için ne yaptığını listele.

Şablonları değiştirebilirsin. Kendi şablonunu bu bilgisayara ya da depoya kaydedebilirsin; depoya kaydedilenler `.agentvera/playbooks/` altına yazılır, git üzerinden ekiple paylaşılır ve aynı adlı yerleşik şablonun yerine geçer.

Kuralı daraltmak için **Ek talimat** alanını kullan. Örneğin: “Yalnızca testleri ve tip hatalarını düzelt; API sözleşmesini değiştirme.”

**Ajan** alanında Claude Code ya da Codex seçersin.

## Sınırlar: ajanı ne durdurur?

Otomatik çalışan bir ajanın iyi olması yetmez, sınırlı olması da gerekir. AgentVera’da bu sınırlar şöyle:

- **Günlük sınır.** Her kuralın bir **Günde en fazla** değeri vardır: 1 ile 50 arası, varsayılan 5. Son 24 saat sayılır. Elle başlattığın çalıştırmalar bu sınıra takılmaz.
- **Dal başına sınır.** Aynı dal için günde en fazla 2 otomatik CI düzeltmesi denenir ve aynı dal için aynı anda yalnızca bir düzeltme çalışır ya da sırada bekler. Düzeltme CI’ı yine kırarsa ajan sonsuza kadar dönmez.
- **Dış metin talimat değildir.** CI logu, PR yorumu ve issue metni ajana güvenilmeyen dış metin olarak verilir; bu metin yalnızca işi tarif eder. Ajana sır paylaşmaması, işle ilgisiz komut çalıştırmaması ve veriyi başka yere göndermemesi söylenir.
- **Push’u ajan yapmaz.** Ajan yalnızca commit eder. Push etmek ve PR açmak AgentVera’nın işidir, ajan teslim ettikten sonra yapılır.
- **Gizli dosya taraması.** Push’tan önce her commit ve son hâl gizli dosyalar için taranır: `.env` dosyaları, `.pem` ve `.key` gibi anahtarlar, `id_rsa`, `.npmrc`, `.netrc`, `credentials.json` gibi dosyalar. `.env.example` gibi örnek dosyalar serbesttir. Biri bulunursa hiçbir şey push edilmez ve çalıştırma başarısız olur.
- **Takılan ajan durur.** Ajan yardım isterse, sessiz kalırsa ya da kapanırsa çalıştırma “ilgi bekliyor” durumuna geçer ve sana bildirim gelir.

## Teslim: iş nereye gider?

Ajan işini bitirince ne olacağını **Teslim edince** alanı belirler:

| Seçenek | Ne olur |
| --- | --- |
| Otomatik (CI dalına push, ana dala PR) | Hata bir özellik dalındaysa o dala push, varsayılan daldaysa PR |
| PR aç | Her zaman PR |
| Aynı dala push et | Olayın dalına push; varsayılan dal ise yine PR |
| Birleştirme kuyruğuna ekle | Dal kuyruğa girer, birleşmiş hâli test edilir |
| Dalda bırak | Hiçbir şey push edilmez, dal sende kalır |

Değişmeyen kural şu: AgentVera varsayılan dala hiçbir zaman doğrudan push etmez. Ajan hiçbir değişiklik yapmadıysa çalıştırma “değişiklik yok” notuyla biter.

PR yorumlarında teslim edilen iş PR dalına push edilir ve AgentVera PR’a, ajanın her yorum için ne yaptığını anlatan bir yanıt yazar.

Birleştirme kuyruğunu seçmenin avantajı, düzeltmenin ana dalın son hâli üzerinde bir kez daha test edilmesidir. Kuyruğun nasıl çalıştığını [birleştirme kuyruğu yazısında](/blog/yapay-zeka-ajanlari-birlestirme-kuyrugu/) anlatıyorum.

## Ana dala almadan önce inceleme

Otomatik düzeltme, otomatik kabul demek değildir. Ajanın işini gözden geçirmenin birkaç yolu var:

- **PR’ın kendisi.** Ana dal hataları zaten PR olarak gelir. Diff’e bakar, CI’ın yeşile döndüğünü görür, normal bir PR gibi birleştirirsin.
- **Birleştirme kuyruğunda onay.** Kuyrukta **Geçenleri kendiliğinden ana dala al** varsayılan olarak kapalıdır; kontrolü geçen iş senin onayını bekler.
- **Dalda bırakmak.** Kuralın ilk haftalarında **Dalda bırak** seçip dalları elle incelemek en temkinli yoldur.
- **Çalıştırmalar sekmesi.** Her çalıştırmanın durumunu, ajanını ve açılan PR’ı buradan görürsün.

Kendi ajanlarının işi için AgentVera’nın otomatik kod incelemesi de var: bir ajanın turu bitince seçtiğin bir Claude modeli kodu inceler, bulguları önem derecesi ve dosya:satır bilgisiyle verir. Ayrıntısı [yapay zekâ ile kod incelemesi](/blog/yapay-zeka-kod-incelemesi/) yazısında.

İncelerken özellikle şunlara bak:

- **Test mi düzeltilmiş, kod mu?** Ajan testi geçirmek için beklenen değeri değiştirdiyse bu bir uyarı işaretidir. Ek talimatta bunu yasaklayabilirsin.
- **CI ayarı değişmiş mi?** Workflow dosyasındaki bir değişiklik meşru olabilir, ama bir adımı atlamak da olabilir.
- **Kapsam dışına çıkılmış mı?** Bir tip hatası için on dosyalık refactor gelmemeli.

## CI/CD merkezinden tek tık düzeltme

Her kırmızı çalıştırma için kural kurmak istemeyebilirsin. CI/CD sekmesi, sağlayıcı başına son 25 çalıştırmayı tek listede gösterir; yeniden çalıştırabilir, yalnızca başarısız işleri yeniden çalıştırabilir (Jenkins hariç) ya da iptal edebilirsin. Kırmızı bir çalıştırmada **Ajana düzelttir** dersen, çalıştırmanın bilgileri ve başarısız işlerin loglarının son kısmıyla bir ajan açılır. Bu sefer ajanla birlikte sen de oradasın.

## Sık yapılan hatalar

- **Ana dalı “Aynı dala push et” ile izlemek ve doğrudan push beklemek.** AgentVera varsayılan dala push etmez; düzeltme yine PR olarak gelir.
- **Günlük sınırı en yükseğe çekmek.** Sınır bir güvenlik ağıdır. Kural güven kazanana kadar düşük tut.
- **Ek talimatı boş bırakmak.** Ajanın neye dokunmaması gerektiğini söylemek, sonuçları belirgin biçimde daraltır.
- **Kararsız testleri ajana bırakmak.** Ara sıra kırılan bir test için ajan bir şeyler değiştirebilir. Bu tür testleri önce sen ele al.
- **Gizli değerleri depoda tutmak.** Tarama push’u durdurur, ama asıl çözüm gizli değerleri depoya hiç koymamaktır.

## Örnek bir gün

### Sabah

Gece birinin `main`’e attığı bir commit CI’ı kırmış. “CI kırılınca düzelt” kuralı bunu yakalamış: ajan logdaki tip hatasını bulmuş, yerelde tekrar üretmiş, düzeltmiş. Varsayılan dal olduğu için iş PR olarak gelmiş. Kahveni içerken diff’e bakıyorsun, PR’ı birleştiriyorsun.

### Öğle

Bir PR’ına ekip arkadaşından dört yorum geliyor. İki dakika içinde “PR yorumlarını işle” kuralı devreye giriyor. Ajan üç yorumu uyguluyor, birine katılmıyor ve gerekçesini yazıyor. AgentVera PR dalına push ediyor ve PR’a bir yanıt bırakıyor. Sen yalnızca katılmadığı yorumu okuyup karar veriyorsun.

### Öğleden sonra

Bir özellik dalında CI üst üste kırılıyor. Ajan iki kez deniyor, ikisinde de testler kırmızı kalıyor. Üçüncü deneme olmuyor; çalıştırmalar sekmesinde durumu görüyorsun. Logu açınca sorunun bir test ortamı değişkeni olduğunu anlıyorsun ve bunu kendin düzeltiyorsun.

## Kontrol listesi

- [ ] CI/CD sekmesine sağlayıcın eklendi mi?
- [ ] GitHub depolarında bilgisayarda GitHub girişi yapılmış mı?
- [ ] **Dallar** alanı doğru mu? Boşsa tüm dallar izlenir.
- [ ] **Ek talimat** ajanın dokunmaması gerekenleri söylüyor mu?
- [ ] **Günde en fazla** değeri temkinli mi?
- [ ] **Teslim edince** seçeneği inceleme alışkanlığına uyuyor mu?
- [ ] Gizli değerler depo dışında mı?

## Sonuç

CI hatalarını ve PR yorumlarını bir yapay zekâ ajanına devretmek, günün en çok bölünen kısmını geri verir. Önemli olan ajanın hızlı olması değil, sınırlı olmasıdır: AgentVera’da ajan kendi worktree’sinde çalışır, push’u kendisi yapmaz, varsayılan dala asla doğrudan yazılmaz, gizli dosya içeren iş push edilmez ve aynı dal için deneme sayısı sınırlıdır. Son karar da PR’da ya da birleştirme kuyruğunda sende kalır.

Daha fazlası için:

- [Otomasyonlar](/ozellikler/otomasyonlar/)
- [CI/CD merkezi](/ozellikler/ci-cd-merkezi/)
- [Kod incelemesi](/ozellikler/kod-incelemesi/)
- [Yapay zekâ ajan iş akışı](/blog/yapay-zeka-ajan-is-akisi/)
- [Paralel kodlama ajanları](/blog/paralel-kodlama-ajanlari/)

AgentVera’yı denemek için [ana sayfaya](/) göz at.

## Sık sorulanlar

**CI hatasını yapay zeka gerçekten düzeltebilir mi?** Kırık testler, tip hataları, lint hataları ve CI ayarındaki sürüm ya da ortam değişkeni sorunları gibi işlerde çoğu zaman evet. Ajan logdaki ilk gerçek hatayı bulur, komutu yerelde çalıştırıp hatayı tekrar üretir ve düzeltir. Yine de sonucu sen gözden geçirirsin.

**Ajan ana dala doğrudan push eder mi?** Hayır. AgentVera varsayılan dala hiçbir zaman doğrudan push etmez. Hata ana dalda ise düzeltme PR olarak gelir; özellik dalındaysa varsayılan ayarda o dala push edilir.

**Ajan sonsuz bir düzeltme döngüsüne girer mi?** Girmez. Aynı dal için günde en fazla 2 otomatik düzeltme denenir ve aynı dal için aynı anda yalnızca bir düzeltme çalışır ya da sırada bekler. Her kuralın ayrıca günlük bir sınırı vardır.

**Hangi ajanlarla çalışır?** Otomasyon kuralları Claude Code ya da Codex ile çalışır. Kuralın Ajan alanından birini seçersin.

**Hangi CI sistemleri destekleniyor?** “CI kırmızı oldu” tetikleyicisi CI/CD sekmesine eklediğin GitHub Actions, GitLab CI ve Jenkins sağlayıcılarını izler. PR yorumu ve issue tetikleyicileri için deponun GitHub’da olması ve bilgisayarda GitHub girişi yapılmış olması gerekir.

**Bu özellik hangi planda var?** Otomasyonlar Pro ve Team planlarında var. Masaüstü uygulamasında Detaylar → Otomasyon → Otomasyonlar bölümündedir.

---

**AgentVera hakkında.** AgentVera, Solviera Teknoloji tarafından geliştirilen macOS, Windows ve Linux masaüstü uygulamasıdır. 18 yapay zeka kodlama ajanını (Claude Code, Codex, Gemini CLI, Copilot, Cursor, Antigravity, opencode, Hermes, Qwen Code, Kimi Code, Kiro, Amp, Droid, Goose, Vibe, Crush, Aider, Cline) proje bazında, gerçek terminallerde ve kullanıcının kendi CLI kurulum ve girişleriyle yan yana çalıştırır. Ücretsiz planda sınırsız ajan vardır. İndir: https://agentvera.dev/indir/ · Fiyatlar: https://agentvera.dev/fiyatlar/
