Aracılar GitHub API'ler ve iş akışlarıyla nasıl etkileşim kurar?
Yapay zeka aracıları geliştirme çalışmalarının nasıl yapıldığını değiştiriyor. Aracılar depolarda el ile gezinmek, kod yazmak ve komutları çalıştırmak yerine doğrudan GitHub içinde çalıştırarak görevleri baştan sona tamamlayabilir.
GitHub birden çok katmanda aracı temelli çalışmayı destekler. Ajanlar, depo durumunu okumak ve eylemler gerçekleştirmek için GitHub API'lerini kullanabilir, denetimli çalıştırıcılarda otomasyon yürütmek için GitHub Actions iş akışlarını, Markdown'da üst düzey depo görevlerini açıklamak ve bunları güçlü koruma önlemleri altında kodlama ajanlarıyla çalıştırmak için GitHub Aracılı İş Akışları'nı kullanabilirler. Ajanlar, GitHub'ı atlamak yerine, geliştiricilerin kullandığı sistemlerle - dallar, çekme istekleri, sorunlar ve otomasyon araçları dahil - aynı şekilde çalışır.
Bu ünitede şunları öğreneceksiniz:
- Aracıların API'ler aracılığıyla GitHub ile etkileşim kurması
- Aracılar iş akışlarını yürütme ortamları olarak nasıl kullanır?
- Depo değişiklikleri nasıl oluşturulur ve yönetilir?
- GitHub'da tam bir aracı çalışma akışı nasıl görünür
Aracılar GitHub ile nasıl etkileşim kurar?
Copilot bulut aracısı gibi GitHub aracıları tanımlı bir depo ve dal bağlamı içinde çalışır. Örneğin, bir sorun veya istem aracılığıyla bir görev atadığınızda, ajan bu depoda çalışmaya başlar.
Aracılar:
- Depoyu araştırma ve anlama
- Görevi tamamlamak için gereken değişiklikleri planlama
- Yeni dalda kod değişiklikleri yapma
- Gözden geçirme için çekme talebi oluştur
Aracılar bu eylemleri API'ler ve iş akışları gibi GitHub platform özelliklerini kullanarak gerçekleştirir.
Bu eylemler, depo olayları (gönderme veya çekme isteği gibi), bir zamanlamaya göre çalıştırılarak veya zaman içinde depo görevlerini sürekli olarak otomatik hale getiren aracı iş akışları aracılığıyla yönetilerek tetiklenebilir.
Eylemleri gerçekleştirmek için GitHub API'lerini kullanma
GitHub, sistemlerin depolarla program aracılığıyla etkileşim kurmasına olanak sağlayan API'ler sağlar.
API'ler aşağıdaki gibi eylemleri etkinleştirir:
- Dallar ve işlemler oluşturma
- Depo verilerini okuma
- Pull request'leri açma ve güncelleştirme
- İş akışlarını tetikleme
Tüm API isteklerinin kimliği, kişisel erişim belirteçleri, GitHub Uygulama belirteçleri veya iş akışlarında sağlanan GITHUB_TOKEN gibi belirteçler kullanılarak doğrulanmalıdır.
Bu, bir aracının gerçekleştirdiği her eylemin yetki kontrolüne tabi ve denetlenebilir olmasını sağlar.
Aracılar, depoda nasıl değişiklik yapar?
Bir aracı değişiklik yaptığında, geliştiriciyle aynı iş akışını izler. Tipik bir dizi şöyle görünür:
- Temel dal seçme
- Yeni bir çalışma dalı oluşturma
- Dosyaları değiştirme veya oluşturma
- Değişiklikleri işleme
- Çekme isteği açma
Git başvuruları, depo içeriği ve çekme istekleriyle çalışma da dahil olmak üzere bu adımların her biri için ayrı API işlemleri vardır.
Bu, aracı eylemlerinin GitHub standart geliştirme modeliyle tamamen uyumlu olduğu anlamına gelir.
Yürütme katmanı olarak GitHub Actions kullanma
Aracılar görevleri doğrudan makinenizde yürütmez. Bunun yerine GitHub, GitHub Actions tarafından desteklenen iş akışları aracılığıyla yürütme ortamları sağlar.
İş akışı, olaylara yanıt olarak işleri çalıştıran YAML tanımlı bir işlemdir.
Aracılar aşağıdaki iş akışlarını kullanır:
- Testleri çalıştır
- Değişiklikleri doğrulama
- Otomasyon görevlerini yürütme
- Uygulamaları dağıtma
Copilot bulut aracısı GitHub Actions destekli bir ortamda çalışır; bu da iş akışlarının aracı yürütmenin temelini oluşturduğu anlamına gelir.
Geleneksel iş akışları ile aracı iş akışları karşılaştırması
Geleneksel GitHub Actions iş akışları genellikle belirleyici ve YAML tanımlıdır: Her adımı, tetikleyiciyi ve koşulu açıkça belirtirsiniz. GitHub Aracı İş Akışları, depo otomasyonu için farklı bir model ekler. Markdown'da istenen sonucu açıklamanıza, ön modelde korumalar tanımlamanıza ve GitHub Actions'de bir kodlama aracısı kullanarak bu amacı yürütmenize olanak tanır. Bunlar önceliklendirme, raporlama, belge bakımı, CI hata analizi ve kod geliştirme gibi açık uçlu ancak sınırlanmış depo görevleri için en uygun olanıdır. Bunlar, CI/CD işlem hatlarını değiştirmezler; GitHub'un "Sürekli Yapay Zeka" olarak tanımladığı geliştirmeleri eklerler.
Ajan tabanlı iş akışını farklı kılan şey
GitHub Aracı İş Akışının iki ana bölümü vardır:
- Tetikleyiciler, izinler, araçlar ve güvenli çıkışlar gibi yapılandırmalar için ön madde
- İşi doğal dilde açıklayan Markdown yönergeleri
Markdown amacı ifade ederken, frontmatter parametreleri tanımlar. İş akışı daha sonra GitHub Actions tarafından yürütülen bir kilit dosyasında derlenir.
on: schedule: daily
permissions: contents: read issues: read pull-requests: read
safe-outputs: create-issue: title-prefix: "[repo-status] " labels: [report]
tools: github:
Daily Repository Status Report
Create a daily report for maintainers.
Include:
Recent activity (issues, PRs, commits)
Key highlights and risks
Recommended next steps
Keep the report concise and link to relevant issues and pull requests.
Bu örnekte, ön model (--- arasında), iş akışının nasıl ve ne zaman çalıştırılabildiğini, nelere erişebileceğini ve hangi eylemlere izin verilip verilmeyebileceğini tanımlar.
Aşağıdaki Markdown, iş akışının amacını doğal dilde tanımlar. Bir ajan bu niyeti yorumlar ve daha sonra denetlenen, gözden geçirilebilir adımlar aracılığıyla uygulanan yapılandırılmış çıktılar üretir.
Her adımı açıkça tanımlayan geleneksel GitHub Actions iş akışlarından farklı olarak, aracı iş akışları sonuçları açıklamaya odaklanır. Aracı, ön bilgilerde tanımlanan kısıtlamalar içinde, hedefe nasıl ulaşacağını belirler.
İş akışlarını tetikleme ve bunlarla etkileşim kurma
İş akışları birden çok yolla tetiklenebilir:
- Gönderme (push) veya çekme isteği (pull request) gibi olaylar aracılığıyla otomatik olarak
- workflow_dispatch olayını el ile kullanma
- GitHub API aracılığıyla programatik olarak
Aracılar, bir depoda güncelleştirmeler yaptıktan sonra görevleri yürütmek veya değişiklikleri doğrulamak için bu tetikleyicilere güvenebilir.
Her iş akışı çalıştırması, işleri yalıtılmış ortamlarda gerçekleştirerek tutarlı ve güvenli bir yürütme sağlar.
Aracı oturumu sırasında ne olur?
Aracı oturumları gözlemlenebilir ve etkileşimlidir.
Oturum sırasında şunları yapabilirsiniz:
- Oturum günlüğünde ilerleme durumunu izleme
- Temsilcinin gerçekleştirdiği eylemleri görün
- Geri bildirim sağlayın veya görevi ayarlayın
- Sonuncu çekme isteğini gözden geçir
Agent, geri bildirime göre uyum sağlar ve görev tamamlanana kadar çalışmaya devam eder.
Uçtan uca ajan yürütme akışı
GitHub ile tipik bir aracı etkileşimi bir araya getirildiğinde şöyle görünür:
- Görev bir konu, sohbet veya CLI aracılığıyla atanır
- Ajan depoyu ve temel dalı seçer
- Ajan, kod tabanını analiz eder ve değişiklikleri planlar.
- API işlemleri branch'ler ve commit'ler oluşturmak için kullanılır
- Pull request açıldı
- Değişiklikleri doğrulamak veya dağıtmak için iş akışları çalıştırılır
- Kullanıcı güncelleştirmeleri inceler, onaylar veya ister
Bu akış, tüm ajan etkinliğinin aşağıdaki gibi olmasını sağlar:
- Depoya göre kapsamlanmış
- İzinlerle kontrol edilir
- İş akışları aracılığıyla yürütüldü
- Görünür ve gözden geçirilebilir
Ana fikir
GitHub üzerindeki aracılar platform dışında çalışmaz. İzinleri zorunlu kılan, yürütme ortamları sağlayan ve çekme istekleri aracılığıyla işbirliğine olanak tanıyan API'ler, iş akışları ve depo yapıları aracılığıyla etkileşim kurar.
Ardından Model Bağlam Protokolü'ne (MCP) aracıların GitHub ötesinde ek araçlara ve hizmetlere bağlanmasını sağlayarak bu özellikleri nasıl genişleteceklerini öğreneceksiniz.