# Maguyva'da Groovy: Gradle ve Jenkins kodu için kod grafları

Canonical source: https://maguyva.ai/tr/languages/groovy

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Maguyva, Groovy'yi AST, sembol ve graf desteğiyle sunar; böylece yapay zeka ajanları Groovy uygulamalarında, Gradle derlemelerinde ve Jenkinsfile'larda sınıfları, closure'ları ve çağrıları izleyebilir.

## Destek anlık görüntüsü

- Katman: AST ve sembol desteği
- Programlama
- Uzantılar: .gradle, .groovy, .jenkinsfile
- Sözdizimi farkında arama ve yapısal bağlam için gerçek AST ayrıştırması.
- Adlandırılmış semboller anlamsal aramayı ve çapraz referansı besler. İlişki çıkarımı etkinleştirildiğinde graf gezinmesi kullanılabilir.
- Bu dil, graf farkındalıklı aramaya semboller ve ilişkiler sağlar; desteklenen kenar türleri dilin yerel yapılarına göre değişir.
- Hem AST ayrıştırma hem de sembol çıkarma kullanılabilir.

## En uygun kullanım

- Paylaşılan derleme mantığının birçok `.gradle` dosyasına dağıldığı, Groovy ile yazılmış Gradle derlemeleri.
- Ajanların CI'yı değiştirmeden önce okuması gereken Jenkins pipeline'ları ve paylaşılan kütüphaneler.
- JVM üzerindeki Groovy uygulamaları ve Spock test paketleri.

## Ajan iş akışları

- Paylaşılan bir kütüphane adımının argümanlarını değiştirmeden önce tüm çağıranlarını bulmak.
- Ortak bir `.gradle` dosyasında tanımlı bir yardımcıyı hangi derleme betiklerinin çağırdığını izlemek.
- Bir yeniden düzenlemeden önce hangi sınıfların bir taban sınıftan kalıtım aldığını haritalamak.

## Groovy yüzeysel yapay zeka araçlarını nerede şaşırtır

Groovy çoğu zaman yapılandırma gibi okunur. Bir Gradle derlemesinde `dependencies { implementation ... }`, closure'lar içeren bir metot çağrısı zinciridir; bildirime dayalı bir Jenkinsfile da öyle. Builder'lar keyfi adları çağrıya dönüştürür, GDK ise her nesneye `each` ve `collect` gibi metotlar ekler. Her çağrıyı kaydeden bir araç bu gürültüde boğulur.

Maguyva DSL ve GDK katmanını filtreler; böylece kendi metotlarınız ve sınıflarınız öne çıkar.

## Maguyva Groovy'den neleri çıkarır

Maguyva `.groovy` ve `.gradle` dosyalarını ve `Jenkinsfile` dosyasını kapsar. Sınıflar, fonksiyonlar ve metotlar çıkarılır; içe aktarmalar `import static` ve `as` takma adlarını normalleştirir. Çağrı adlarından sondaki closure blokları ve `?.` güvenli gezinme işleci temizlenir; böylece `repo?.save(order) { ... }`, `save` çağrısı olarak kaydedilir. Bir sınıf içinde alıcısız yapılan çağrı, o sınıfın kendi metoduna çözülür.

Gürültü katmanlar halinde filtrelenir:

- `dependencies`, `implementation`, `task`, `given`, `when`, `then` ve `Mock` gibi yaklaşık 140 standart kütüphane, Gradle ve Spock adı.
- `each`, `collect`, `inject` ve `eachLine` gibi yaklaşık 260 GDK metodu.
- `pipeline`, `stage`, `steps` ve `sh` gibi Jenkins adımları dahil builder DSL adları; parantezle çağrılmak yerine builder tarzında kullanıldıklarında.
- `@CompileStatic`, `@Immutable` ve `@Autowired` gibi AST dönüşümü ve framework ek açıklamaları; bunlar hiçbir zaman çağrı olarak kaydedilmez.

Graf ayrıca kalıtımı, örneklemeyi ve okuma ve yazmaları kaydeder.

## Örnek ajan istemleri

- "`deployToStaging`'u kim çağırıyor ve hangi pipeline'lardan?" (`find_symbol`, ardından `dependency_search` incoming)
- "Hangi sınıflar `BaseIntegrationSpec`'ten kalıtım alıyor?" (`dependency_search`)
- "Sürüm görevinin yapıtları nasıl derleyip yayımladığını açıkla." (`get_task_context`)

## Bilinen sınırlar

- Groovy metotları ve serbest fonksiyonlar aynı sözdizimi düğümünü paylaşır; bu yüzden `structural_search` içindeki `methods` hazır ayarı hiçbir şey seçmez. Bunun yerine `functions` hazır ayarını veya `find_symbol` kullanın.
- `collect` veya `stage` gibi bir GDK ya da DSL metoduyla aynı adı taşıyan kendi metodunuz onlarla birlikte filtrelenebilir. Bir çağıran eksik görünüyorsa `text_pattern_search` kullanın.

## Sonraki adımlar

[Hızlı başlangıç](/tr/docs/quickstart) ile bir repo bağlayın, ardından destek matrisi için [uyumluluk sayfasına](/tr/docs/compatibility) bakın. Derlemelerinizin derlediği JVM kodu için [Java rehberini](/tr/languages/java) ve [Kotlin rehberini](/tr/languages/kotlin) okuyun.

## Motor ayrıntıları

- Groovy desteği `.groovy`, `.gradle` ve `Jenkinsfile` dosyalarını kapsar. Çağrı adlarından closure blokları ve `?.` güvenli gezinmesi kaldırılır.
- Yaklaşık 140 standart kütüphane, Gradle ve Spock adı ile yaklaşık 260 GDK metodu ilişkilerden filtrelenir.
- `stage` ve `sh` gibi Jenkins adımları dahil builder DSL adları builder tarzında filtrelenir; ek açıklamalar hiçbir zaman çağrı olarak kaydedilmez.

## Yararlı MCP giriş noktaları

- `find_symbol`: Tanıma ve çağıranlara ihtiyaç duyduğunuzda paylaşılan bir kütüphane adımı, derleme yardımcısı veya sınıf için kullanın.
- `dependency_search`: Hangi betiklerin ve pipeline'ların bir derleme yardımcısını çağırdığını görmek için incoming geçişi kullanın.
- `text_pattern_search`: Graftan filtrelenen DSL çağrıları ve GDK metotları için kullanın.
