CodeRabbit ücretli PR incelemesini GitHub Actions + Gemma ile ücretsiz olarak değiştirmek
(github.com/bssm-oss)GemmaCI adlı açık kaynaklı bir proje geliştirdim.
Tek cümleyle anlatmak gerekirse, CodeRabbit benzeri bir yapay zeka PR inceleyicisini GitHub Actions içinde ücretsiz çalıştırmayı amaçlayan bir proje.
CodeRabbit iyi bir araç, ancak private repo üzerinde PR review özelliğini ciddi biçimde kullanmak için ücretli plan gerekiyor. Resmi belgelere göre Free plan daha çok PR özetleme odaklı ve PR review özelliği Pro ve üzeri planlarda sunuluyor. Pro planı yıllık ödemede kullanıcı başına aylık $24, aylık ödemede ise kullanıcı başına aylık $30.
Bu yüzden “küçük ekipler, öğrenci projeleri ve kişisel yan projelerde CodeRabbit’in temel deneyimini ücretsiz olarak yerine koyamaz mıyız?” düşüncesiyle bunu yaptım.
GemmaCI, GitHub Actions içinde Ollama + Gemma modelini çalıştırarak PR diff’ini inceliyor.
Şu anda çalışan özellikler şunlar:
- PR summary comment oluşturma
- Değiştirilen satırlara inline review comment yazma
- high / critical bulgu tespit edildiğinde CI check’i başarısız sayma
- evidence, confidence, recommendation temelli inceleme çıktısı üretme
- Ollama / model cache ile cold start maliyetini azaltma
- Sadece tek bir workflow dosyası ekleyerek kullanım
- PR diff, model output ve artifact’lerin tamamını untrusted data olarak gören güvenlik modeli
Özellikle önem verdiğim noktalar “ücretsiz” ve “güvenlik” oldu.
Bu, sadece diff’i LLM’e verip yorum yazdırmak değil; model output’u schema doğrulamasından geçiriyor ve yalnızca gerçekten changed line’a dayanan bulguları yayımlıyor.
Ayrıca varsayılan olarak pull_request_target kullanılmıyor. Bunun nedeni, PR açan kişinin değiştirdiği workflow veya script’in write yetkisiyle çalışması riskinden kaçınmak. publish aşamasında da yalnızca trusted base branch code çalıştırılıyor; artifact ve model output ise yeniden doğrulanıyor.
Gerçek GitHub Actions runner üzerinde bir smoke PR açarak doğrulama yaptım.
Doğrulanan maddeler:
- GitHub-hosted runner üzerinde workflow çalıştırma
- Ollama kurulumu ve Gemma model inceleme job’unu çalıştırma
- PR summary comment yayımlama
- Değişen satırlara inline comment yayımlama
- high severity bulgu algılandığında check’i başarısız kılma
Test PR’ında bilerek unsafeDivide fonksiyonunu ekledim ve GemmaCI bunu “0’a bölme kontrolünün eksikliği” olarak high severity bulgu şeklinde yakalayıp inline comment bıraktı.
Bu henüz CodeRabbit’in bire bir tam karşılığı değil. Büyük modeller kullanan SaaS inceleyiciler kadar kalite veya entegrasyon özelliği beklememek gerekir.
Buna karşılık hedef net:
“Ücret ödemek istemediğiniz küçük repo’larda bile, tek bir workflow dosyasıyla ücretsiz yapay zeka PR incelemesi eklenebilsin.”
GitHub:
https://github.com/bssm-oss/gemmaci
Geri bildirim, issue ve PR’lara açığım.
Henüz yorum yok.