Geliştirme

GitHub'ı Otonom Bir Yapay Zeka Ajanına Bağlamak

Bir Atako ajanı issue'larınızı okuyabilir, pull request açabilir ve GitHub üzerindeki CI iş akışlarınızı izleyebilir; yalnızca ona verdiğiniz eylemlerle sınırlı bir erişimle.

Atako ajanları tarafından yazıldı · İnceleyip onaylayan Romain Laodicina · Atako CTO'su

Olası iş akışları

Gelen issue'ların otomatik triyajı

Ajan bir deponun yeni issue'larını listeler (list_issues) ve başlık ile içeriğe göre tür ve aciliyete göre sınıflandırır. Gerekirse eksik etiketleri oluşturur (create_label) ardından uygular (update_issue). Kritik bir bilgi eksik olduğunda, yeniden üretim, sürüm, ortam, yazara sormak için issue'a yorum yapar (add_issue_comment) ve yanıt gelmediği sürece vakayı bir insana yükseltmez.

Küçük düzeltmeler için pull request açılması

Güncelliğini yitirmiş bir bağımlılık, bir yazım hatası veya düzeltilecek bir yapılandırma dosyasında, ajan bir dal oluşturur (create_branch), ilgili dosyaları değiştirir (create_or_update_file) ardından pull request'i açar (create_pull_request). Sonra bir insan incelemesi ister (create_review_request) ve orada durur: bu tür bir akışta, otomatik kontroller yeşil olsa bile, ekipten bir kişinin açık onayı olmadan hiçbir birleştirme asla tetiklenmez.

CI çalışmalarının takibi ve sürüm hazırlığı

Ajan GitHub Actions iş akışı çalışmalarını izler (list_workflow_runs, get_workflow_run) ve bir başarısızlık durumunda uyarmadan önce nedeni anlamak için logları alır (get_job_logs_download_url). Ardından zaten yayımlanmış sürümlere bakar (list_releases) ve tüm kontroller yeşil olduğunda, herhangi bir yayından önce bir insan tarafından onaylanmaya hazır sürüm notlarıyla bir sonraki sürümü hazırlar (create_release).

Bağlayıcı eylemleri

  • list_issues (okuma)

    Bir deponun açık issue'larını listeler.

  • get_pull_request (okuma)

    Bir pull request'in ayrıntısına bakar.

  • list_workflow_runs (okuma)

    Actions iş akışlarının son çalışmalarını listeler.

  • get_workflow_run (okuma)

    Bir iş akışı çalışmasının ayrıntısına bakar.

  • get_job_logs_download_url (okuma)

    Bir job'ın loglarının URL'sini alır.

  • list_releases (okuma)

    Zaten yayımlanmış sürümleri listeler.

  • create_label (yazma)

    Depoda yeni bir etiket oluşturur.

  • update_issue (yazma)

    Bir issue'yu değiştirir: etiketler, durum, atama.

  • add_issue_comment (yazma)

    Bir issue'ya yorum ekler.

  • create_branch (yazma)

    Bir referanstan bir dal oluşturur.

  • create_or_update_file (yazma)

    Commit mesajıyla bir dosya oluşturur veya değiştirir.

  • create_pull_request (yazma)

    Bir daldan diğerine bir pull request açar.

  • create_review_request (yazma)

    Bir veya birden fazla kişiden inceleme ister.

  • create_release (yazma)

    Etiket ve notlarla bir sürüm yayımlar.

Ön koşullar

  • Hedeflenen depolarda yazma erişimi olan bir GitHub hesabı.
  • Settings, Developer settings, Personal access tokens üzerinden oluşturulmuş fine-grained bir token.
  • Contents, Issues ve Pull requests için Read and write, Actions için Read izinleri.
  • Atako'ya, Ayarlar, Entegrasyonlar üzerinden yapıştırılmış token.
  • Açık bir grant: ajan, bağlantı, kesin eylemler ve kapsam.

Nasıl bağlanılır

  1. 1

    GitHub'da fine-grained token'ı oluşturun

    Settings, Developer settings, Personal access tokens, Fine-grained tokens, Generate new token. Contents, Issues, Pull requests'i yazma kapsamında ve Actions'ı okuma kapsamında işaretleyin, ardından gösterilen token'ı kopyalayın.

  2. 2

    Token'ı Atako'ya bağlayın

    Token'ı Ayarlar, Entegrasyonlar içine yapıştırın. Bağlantı tüm ajanlarınız için kullanılabilir hale gelir.

  3. 3

    Ajana bir grant verin

    Ajanın sayfasından, kesin GitHub eylemlerini ve kapsamlarını seçin. Varsayılan olarak deny-by-default: hiçbir şeye erişilemez.

  4. 4

    İlk senaryoyu başlatın

    Verilen grant'e göre ajan issue'ları listeler, bir pull request açar veya bir CI çalışmasını izler ve bir insan kararı gerektiğinde uyarır.

Neden otonom bir ajanı GitHub'a bağlamalı

GitHub, teknik bir ekibin kodunu, issue'larını, pull request'lerini ve CI pipeline'larını bir araya toplar. Atako'nun anladığı anlamda bir otonom yapay zeka ajanı için doğal bir alan: klasik bir otomasyon aracının tetikleyicisini beklemeden, kendi ortamında sürekli çalışır ve kendi yolunu seçer.

Ajan, list_issues, create_pull_request veya get_workflow_run gibi kesin eylemler üzerinden hareket eder. Bu, tool calling ilkesidir: konektör gerçek bir eylemler kataloğu sunar ve ajan, kendisine verilenin ötesine hiç geçmeden, uygun olanları çağırır. Bir CI olay triyajı senaryosunda, çalışmaları izler, başarısızlık loglarını çapraz kontrol eder ve bir insan sorunu keşfetmeden önce belgelenmiş bir issue açar.

Bütün gece çalışan bir ajan, issue'ları akışta işler ve bir düzeltme tespit edilir edilmez pull request'ler hazırlar. Aktif ajan ve bağlantı hacmine göre maliyeti konumlandırmak için tarifelere bakın.

Limitler ve iyi uygulamalar

GitHub erişimi deny-by-default çalışır: mevcut 37 eylemden hiçbiri, açık bir grant, eylem eylem, salt okunur veya yazma kapsamında, onu vermeden aktif değildir. Ajanın yapabileceklerini sınırlayan, ona duyulan güven değil, tam olarak bu mekanizmadır. Hassas eylemlerde insan kontrolü doğru refleks olarak kalır: herhangi bir birleştirmeden önce create_review_request'i bir doğrulama adımı olarak koruyun.

Resmi GitHub API belgelerine göre, kimlik doğrulamalı bir token saatte 5 000 istekle sınırlıdır; normal bir kullanım için geniştir ama birden fazla ajan çok aktif bir depoda aynı token'ı paylaşıyorsa izlenmesi gerekir.

Bu klasik entegrasyonun yanında, Atako bir ajanın bir depoyu daha doğrudan araştırmasını veya değiştirmesini sağlayan Code adında dahili bir yetenek de sunuyor. Bu sayfanın konusu bu değil, ama ihtiyaçlarınız issue triyajı ve pull request açmayı aşıyorsa faydalı bir tamamlayıcı.

İlgili kullanım örnekleri

İlgili entegrasyonlar

Sık sorulan sorular

Ajan GitHub'da tek başına bir pull request'i birleştirebilir mi?

merge_pull_request eylemi mevcuttur ve teknik olarak bir ajana verilebilir. Atako, bunu ayırmayı ve herhangi bir kod birleştirmesinden önce create_review_request'i insan doğrulama noktası olarak korumayı öneriyor.

Entegrasyonu bağlamak için ücretli bir GitHub planı gerekir mi?

Hayır, token'ın hedeflediği depolarda yazma erişiminiz olduğu sürece ücretsiz bir hesap yeterlidir. Faturalandırma yalnızca Atako aboneliğinize bağlıdır, GitHub'a değil.

Ajanın GitHub erişimi nasıl iptal edilir?

Grant'i Atako'da ajanın sayfasından silin veya GitHub'da, Settings, Developer settings, Personal access tokens üzerinden token'ı iptal edin. Her iki durumda da erişim hemen kesilir.

Sırada ne okumalı

Kaynaklar

Romain Laodicina

Atako CTO'su

Bu içerik Atako'nun yapay zeka ajanları tarafından yazılmış, ardından Atako CTO'su Romain Laodicina tarafından gözden geçirilmiş, düzeltilmiş ve onaylanmıştır.

İlk AI ajanlarınızı dağıtın

Hesabınızı ücretsiz oluşturun ve kod yazmadan birkaç dakikada bir ajan başlatın.

AI'nin bir adım önünde kalın.

Ürün yeniliklerini, yeni ajanları ve AI analizlerimizi doğrudan e-posta kutunuzda alın. Spam yok, istediğiniz zaman abonelikten çıkın.