GitHub'u kayıt sistemi ve kontrol düzlemi olarak açıklama
Ajan sistemlerin, kod depolamanın ötesinde işlev gören bir ortama ihtiyacı vardır. Amaçları yakalayabilen, eylemleri kaydedebilen, doğrulamayı zorlayan ve ilke uygulayabilen bir ortama ihtiyaçları vardır. Bu öğrenme yolunda, ortam olarak GitHub kullanılmaktadır.
Bu ünitede şunları öğreneceksiniz:
GitHub aracı iş akışları için kayıt sistemi olarak davranmasının anlamı
GitHub, depo ilkeleri ve iş akışları aracılığıyla denetimi nasıl zorlar?
Aracı davranışını denetlemek ve kısıtlamak için hangi GitHub denetimleri kullanılır?
Kayıt sistemi olarak GitHub
GitHub, geliştirme çalışmalarının önerildiği ve değerlendirildiği yapıtları depoladığı için kayıt sistemidir:
Depolar ve dallar
İşlemeler ve çekme istekleri
Sorunlar ve tartışmalar (bağlam ve amaç)
İş akışı çalıştırmaları ve artefaktler (kanıtlar)
Gözden geçirme geçmişi (kararlar)
Aracılı bir iş akışında bu yapıtlar çift görev yapar: geliştirmeyi destekler ve aracı davranışını olgudan sonra denetlenebilir hale getirir.
Note
Bu modül genel GitHub idare desenlerine odaklanır. GitHub Gizli dizi tarama ve push koruması gibi Gelişmiş Güvenlik özellikleri burada ele alınmamaktadır, ancak üretim ortamlarında ek doğrulama sinyalleri olarak tümleştirilebilir.
Kontrol düzlemi olarak GitHub
GitHub, kontrol düzlemidir çünkü (ilke tarafından yapılandırıldığında), aracılara ne yapabileceklerini ve yapamayacaklarını belirleyen zorlama noktaları sağlar.
Bir bakışta denetimler
| GitHub denetimi | Ne uygular | Aracılar için neden önemlidir? |
|---|---|---|
| Çekme istekleri | Birleştirmeden önce değişiklikler önerilir. | Temsilci çalışmalarını tartışılabilir ve gözden geçirilebilir hale getirir. |
| Gerekli incelemeler | İnsan ve temsilci onay kapısı | Gözden çıkarılmamış birleştirmeleri önler ve sorumluluk kabul edilmesini destekler |
| Gerekli durum denetimleri | Birleştirmeden önce CI kanıtı | Değerlendirmeyi zorlanabilir ilkeye dönüştürür |
| CODEOWNERS | Yola göre yönlendirmeyi gözden geçirme | Doğru uzmanların yüksek etkili değişiklikleri denetlemesini sağlar |
| Kural kümeleri / dal koruması | Merkezi dal ilkesi | Güvenli olmayan birleştirmeleri önler ve tutarlı korumalar uygular |
| Environments | Dağıtımlar/gizliler için onaylar | Hassas yürütmeyi ve gizli erişimi denetler |
Note
Bu zorlama davranışları yapılandırmaya ve izinlere bağlıdır. Örneğin, gerekli denetimleri ve kural kümelerini etkinleştirmek genellikle bir yönetici görevidir. Gözetim modeli her yerde çalışır; uygulama, kontrollerin etkinleştirilmesini gerektirir.
GitHub Actions kontrol düzlemindedir
İş akışları yürütmenin doğrulandığı yerdir, ancak izinler de denetimler kadar önemlidir. Önemli bir güvenlik ilkesi en az ayrıcalıktır:
Varsayılan iş akışı belirteci izinlerini temkinli bir şekilde ayarlayın (örneğin, mümkün olduğunda salt okunur).
Yalnızca ihtiyacı olan işlere daha yüksek izinler verin.
Hassas gizli bilgilere ve dağıtımlara erişimi denetlemek için ortamları ve onayları kullanın.
Aracılı sistemler için "aracının yapabilecekleri" genellikle "iş akışı belirtecinin ve araç kimlik bilgilerinin yapabilecekleri" anlamına gelir. Denetimler ve izinler uygun şekilde tasarlanmalıdır.
Uygulama örneği
İş akışı yürütmesi insan onayına bağlıdır Bazı aracı PR (Çekme İsteği) iş akışlarında, bir insanın iş akışlarının çalışmasını açıkça onaylaması gerekebilir (örneğin, "İş akışlarını onayla ve çalıştır" eylemi). Bu yerleşik bir önlemdir: Güvenilmeyen değişikliklere karşı ayrıcalıklı iş akışlarının otomatik olarak çalışma riskini azaltır.
Ortamlar, gizli bilgileri ve dağıtımları yönetir Bir iş akışı görevi, gerekli gözden geçirenlere sahip bir ortamı hedefliyorsa, görev onay verilene kadar bekler. Bu, bir aracı tarafından tetiklenen iş akışının korunan gizli bilgilere erişmesini ya da (yapılandırıldığında) insan incelemesi olmadan dağıtım yapmasını engeller.
CODEOWNERS, yüksek riskli yollar için gözden geçirmeleri yönlendirir Aracı hassas bir yoldaki dosyaları değiştirirse (örneğin, .github/workflows/ veya infra/), CODEOWNERS bu yolların sahiplerinden otomatik olarak gözden geçirme isteğinde bulunabilir. Bu, gerekli incelemelerle birleştirildiğinde, doğru uzmanların yüksek etkili değişiklikleri denetlemesine yardımcı olur.
GitHub uygulamada kontrolü nasıl sağlar?
Ajan, güvenlik düzeltmesiyle bir çekme isteği açar. GitHub:
Değişikliği çekme isteminde görünür hale getirir
CODEOWNERS aracılığıyla doğru kişilere yönlendirir (yapılandırıldığında)
Gerekli denetimler ve iş akışları aracılığıyla değerlendirir
Birleştirme, ilke gereksinimleri karşılanana kadar engellenir (yapılandırıldığında).
Onaylar verilene kadar korumalı çevredeki gizli bilgilere erişimi engeller (yapılandırıldığında)
GitHub kontrol düzlemi olduğunu söylemek bu anlama gelir: zorlamanın gerçekleştiği yerdir.
GitHub yalnızca aracı çalışmasının depolandığı yer değildir. Temsilci çalışmalarının denetlendiği, doğrulandığı ve yönetildiği yerdir. Depolar ve çekme istekleri çalışmayı görünür hale getirir; denetimler, incelemeler, CODEOWNERS, kural kümeleri, dal koruması ve ortamlar işi denetlenebilir hale getirir.
artık GitHub aracı davranışını nasıl kısıtlayıp doğrulayabileceğinizi gördüğünüze göre, bir sonraki adım sorumluluğu incelemektir. Bir sonraki ünitede, aracılar bir iş akışı içinde hareket ettiğinde kimlerin sorumlu kaldığına bakacaksınız.