Sorumlulukları, riskleri, desenleri önleme ve izlenebilirlik gereksinimlerini belirleme
Aracılar daha yetenekli hale geldikçe, sorumlulukların sisteme geçişlerini hayal etmek cazip olabilir. Öyle bir şey yok. Aracı sistemler iş yürütebilir, ancak insanlar sonuçlardan ve yürütmeyi yöneten denetimlerden sorumlu olmaya devam eder.
Bu ünitede şunları öğreneceksiniz:
Ajan işlemleri ve sonuçlarından kim sorumludur
Ajan sistemlerinde hangi yaygın riskler ve anti-desenler ortaya çıkar?
GitHub denetimleri bu riskleri nasıl azaltır?
Güvenilir sistemler için izlenebilirlik ve gözlemlenebilirlik neden gereklidir?
Sorumluluk yürütmeyle birlikte taşınmaz
Temsilci bir çekme isteği oluştururken, kodu gözden geçirirken veya geri bildirime yanıt verirken iş akışına katılır, ancak sonuçların sahipliğini üstlenmez. Sorumlu taraflar hala şu kişiler ve ekiplerdir:
Görevi tanımla
İzinleri ayarlama
Denetimleri seçme ve yapılandırma
Sonuçta elde edilen değişikliği onayladı
Çekme isteği gözden geçirme modeli bu durumu açık hale getirir: sistem teklif edebilir, ancak neyin kabul edildiğine insanlar karar verir.
Yaygın riskler ve desenlere karşı koruma
Erken aşama aracı sistemleri genellikle tahmin edilebilir yollarla başarısız olur:
Plansız yürütme Aracı, açık ve incelenebilir bir yaklaşım olmadan kodu değiştirmeye başlar.
Aşırı yetkilendirilmiş aracılar Aracı (veya iş akışı belirteci/araç seti kimlik bilgileri) gerekenden daha geniş erişime sahiptir.
Gizli mantık İş akışı yalnızca ara yapıtlar (plan, varsayımlar, karar noktaları, yürütme bağlamı) içermeyen çıkışları (fark) gösterir.
Otomasyona kör güven önemlidir, ancak kontroller yalnızca algılamak üzere tasarlandıkları şeyleri doğrular. Geçiş derlemesi otomatik olarak değişikliğin tamam, uygun veya düşük riskli olduğu anlamına gelmez.
Uygulama eşlemesi: risk → GitHub'da riski azaltma
| Risk / anti-patern | GitHub denetimlerini kullanarak azaltma | |
|---|---|---|
| Plansız yürütme | PR'nin farkları var ama planı veya mantığı yok | PR şablonunda plan bölümü gerektir; birleştirmeden önce inceleme gerektir |
| Gereğinden fazla yetkilendirilmiş aracılar | İş akışları depoya yazabilir, gizli bilgilere geniş kapsamlı erişebilir. | En az ayrıcalıklı GITHUB_TOKEN; gerekli gözden geçirenlerin olduğu ortamlar; iş akışlarını kimlerin tetikleyebileceğini kısıtlama |
| Gizli mantık | Varsayım yok/kapsam/karar izi yok | Çekme isteği (PR) yorumlarında iş akışı çalıştırmalarını planlamayı, bağlamayı ve kararları kaydetmeyi gerektirir. |
| Otomasyona kör güven | "CI geçti, gönder" düşünce yapısı | CODEOWNERS, gerekli incelemeler ve risk bazlı onaylarla denetimleri birleştirin. |
İzlenebilirlik ve gözlemlenebilirlik
Bir aracıyı iyi denetlemek için son farkı görmekten fazlasına, izleme kaydına ihtiyacınız vardır. GitHub bu iz şunları içerebilir:
Çekme istekleri ve taahhüt geçmişi
Açıklamaları ve onayları gözden geçirme
İş akışı yürütmeleri ve karşıya yüklenen artifaktlar (test raporları, günlükler)
Kod taraması yüklemeleri ve uyarıları
Gizli tarama uyarıları ve itme koruması etkinlikleri
Kuruluş denetim günlüğü olayları (kullanılabilirlik ve erişim kuruluş/kuruluş yapılandırmasına bağlıdır)
Amaç yalnızca uyumluluk değildir. Operasyonel bir anlayıştır: Bir şey başarısız olduğunda, nelerin değiştiğini, kimin onayladığı, hangi kanıtın mevcut olduğunu ve sonrasında ne olduğunu bilmeniz gerekir.
Temsilci katkıları için minimum denetim izi
Belirtilen bir hedef (sorun linki veya pull isteği açıklaması)
İncelenebilir bir plan (PR planı bölümü veya dosyası)
Sınırlı değişiklik kümesi (dal ve taahhütler)
Otomatik kanıt (iş akışı çalıştırması ve artefaktlar)
İnsan yargısı (gözden geçirme ve onay)
Net bir sonuç (birleştirme, geri döndürme veya yükseltme)
Aracının güvenlik açığı düzeltmesinin CI'yi geçtiğini ancak daha sonra bir regresyona neden olduğunu varsayalım. Önemli soru yalnızca aracının hata yapıp yapmaması değildir; sistemin hatayı anlaşılır ve önlenebilir yapıp yapmadığıdır:
Görünür bir plan ve kapsam var mıydı?
Talep edilen gözden geçirenler doğru muydu (ve onay verdiler mi)?
Denetimler değişiklik riskiyle eşleşmiş mi?
Denetim izi, olanları anlamak için yeterli mi?
Aracı sistemler kimin iş gerçekleştirdiğini değiştirir, ancak sonuçların sahibini değiştirmez. İnsan ekipleri sorumluluğu sürdürür, bu nedenle ortak kötü uygulamalara karşı tasarım yapmalı ve GitHub'ın yerel yapıları ve günlükleri yoluyla güçlü izlenebilirlik sağlamalıdır.
Sorumluluğun nasıl işlediğini anladıktan sonra, son adım, ajan çalışmasının nasıl değerlendirileceğine karar vermektir. Sonraki ünitede katkı modelini aracı tarafından oluşturulan üretime uygulayacaksınız.