GitHub Copilot Kod İncelemesi için Kuruluş Yöneticilerine Yönelik Runner Kontrolleri ve İçerik Hariç Tutma

GitHub Copilot kod inceleme ayarlarının kuruluş düzeyinde yönetimi için yeni runner tipi yapılandırmaları tanıtıldı. Bu özellik, güvenlik ve performansı artırarak ölçeklenebilir yönetim imkanı sunuyor.

4
4sysops
15 görüntülenme
GitHub Copilot Kod İncelemesi için Kuruluş Yöneticilerine Yönelik Runner Kontrolleri ve İçerik Hariç Tutma

Sorun

GitHub organizasyonlarında çalışan ekipler, farklı projelerde farklı runner tiplerini kullanarak kod inceleme sürecinde tutarsızlıklar yaşayabiliyordu. Bu durum, performans sorunlarına ve güvenlik açıklarına yol açabiliyordu. Özellikle self-hosted runner'ların kullanımında, her bir repository için ayrı ayrı ayar yapılmasının yönetim yükünü artırması ve standartlaşmayı zorlaştırması önemli bir problemdi.

Çözüm: Kuruluş Düzeyinde Runner Kontrolleri

GitHub, kuruluş yöneticilerine aşağıdaki yeni özellikleri sunarak bu soruna çözüm getirdi:

1. Runner Tipi Yönetimi

Yeni runner tipi yapılandırmaları sayesinde, kuruluş yöneticileri aşağıdaki işlemleri gerçekleştirebilir:

  • Tüm repository'ler için geçerli olacak default runner tiplerini tanımlama
  • Self-hosted runner'lar ile GitHub-hosted runner'lar arasında seçim yapma
  • Büyük runner'lar (large runners) için özel konfigürasyonlar uygulama

2. Kuruluş Düzeyinde Ayarların Kilitlenmesi

Bu yeni özellikler sayesinde, yöneticiler aşağıdaki adımları izleyerek kuruluş genelinde tutarlılığı sağlayabilir:

  1. GitHub Organizasyon Ayarlarına Erişim:
    GitHub.com → Organizations → [Organizasyon Adı] → Settings → Actions → Runners
  2. Runner Tipi Seçimi:
    • GitHub-hosted runner'lar: GitHub tarafından yönetilen, otomatik ölçeklendirme sağlayan runner'lar
    • Self-hosted runner'lar: Kuruluşun kendi sunucularında çalışan, özel konfigürasyonlara sahip runner'lar
    • Large runners: Yüksek performans gerektiren görevler için optimize edilmiş runner'lar
  3. Ayarların Kilitlenmesi:

    Kuruluş yöneticileri, aşağıdaki komutla runner ayarlarını kilitleyerek bireysel repository'lerin kendi ayarlarını geçersiz kılmasını engelleyebilir:

    # GitHub CLI kullanarak
    $ gh api -X PUT /orgs/{org}/actions/runners/lock --field runner_type=default

3. İçerik Hariç Tutma (Content Exclusion)

Kuruluş yöneticileri, hassas içeriklerin kod inceleme sürecinden otomatik olarak hariç tutulmasını sağlayabilir. Bu özellik sayesinde aşağıdaki durumlar yönetilebilir:

  • API anahtarları, şifreler gibi gizli bilgilerin log'larda görünmesini engelleme
  • Belirli dosya tiplerinin (örn. .env, .config) incelemeye dahil edilmemesi
  • Özel regex kalıplarıyla hassas verilerin tespiti ve maskelenmesi

Uygulama Adımları

Adım 1: Runner Tiplerini Tanımlama

  1. GitHub Organizasyon Ayarlarına gidin:

    https://github.com/organizations/[ORGANIZATION_NAME]/settings/actions/runners
  2. Varsayılan runner tipini seçin (GitHub-hosted, self-hosted veya large):

    # GitHub REST API kullanarak
    curl -X PUT \
      -H "Authorization: token YOUR_GITHUB_TOKEN" \
      -H "Accept: application/vnd.github.v3+json" \
      https://api.github.com/orgs/{org}/actions/runners/default \
      -d '{"runner_type":"large"}'

Adım 2: Runner Ayarlarını Kilitleme

  1. Kuruluşunuzdaki tüm repository'ler için geçerli olacak ayarları kilitleyin:

    # GitHub CLI kullanarak
    $ gh api -X PUT /orgs/{org}/actions/runners/lock --field runner_type=default --field enforce=true
  2. Bu ayarın başarılı bir şekilde uygulandığını doğrulamak için:

    # Runner ayarlarını kontrol et
    $ gh api /orgs/{org}/actions/runners | jq '.runner_type'

Adım 3: İçerik Hariç Tutma Kurallarını Yapılandırma

  1. GitHub Organizasyon Ayarlarında "Content Exclusion" bölümüne gidin:

    https://github.com/organizations/[ORGANIZATION_NAME]/settings/actions/content-exclusion
  2. Aşağıdaki örnek kalıpları ekleyin:

    # Hassas dosya tipleri
    *.env
    *.config
    *.key
    
    # API anahtarları ve şifreler için regex
    /api[_-]?key=.*
    /password=.*
    
  3. Değişiklikleri kaydedin ve uygulayın.

Önemli İpuçları ve Uyarılar

Uyarı: Runner ayarlarını kilitledikten sonra, bireysel repository'ler kendi runner ayarlarını değiştirmeye çalıştığında hata alacaktır. Bu durumda, kuruluş yöneticisi tarafından ayarların yeniden yapılandırılması gerekmektedir.

İpucu: Self-hosted runner'lar kullanırken, runner'ların bulunduğu sunucuların güvenliği için ek önlemler alın. Örneğin, runner'ların sadece kuruluşun özel ağında çalışmasını sağlayın ve düzenli olarak güncellemeleri kontrol edin.

Performans Notu: Large runner'lar yüksek performans gerektiren görevler için optimize edilmiştir. Ancak, bu runner'ların kullanımı maliyetleri artırabilir. Maliyetleri kontrol altında tutmak için runner'ların kullanımını izleyin ve gereksiz kullanımları engelleyin.

Sık Karşılaşılan Sorunlar ve Çözümleri

Runner Ayarlarının Geçersiz Kılınması

Sorun: Bireysel repository'ler, kuruluş düzeyinde kilitlenen runner ayarlarını geçersiz kılmaya çalışıyor.

Çözüm:

  1. Kuruluş yöneticisi olarak runner ayarlarının kilitlendiğinden emin olun.
  2. Eğer kilitlenme işlemi başarısız olduysa, aşağıdaki komutu kullanarak tekrar deneyin:
  3. # Runner kilidini kaldır ve yeniden kilitle
    $ gh api -X DELETE /orgs/{org}/actions/runners/lock
    $ gh api -X PUT /orgs/{org}/actions/runners/lock --field runner_type=default --field enforce=true

Self-Hosted Runner'ların Çalışmaması

Sorun: Self-hosted runner'lar beklendiği gibi çalışmıyor.

Çözüm:

  1. Runner'ın bulunduğu sunucunun internete bağlı olduğundan emin olun.
  2. Runner'ın doğru şekilde yapılandırıldığını doğrulayın:
  3. # Runner'ı yeniden kaydet
    $ ./config.sh remove --token YOUR_RUNNER_TOKEN
    $ ./config.sh --url https://github.com/{org} --token YOUR_RUNNER_TOKEN
  4. Runner'ın sistem hizmeti olarak çalışıp çalışmadığını kontrol edin:
  5. # Linux (systemd)
    sudo systemctl status actions.runner.{org}-{runner-name}.service

Sonuç

GitHub Copilot kod inceleme için sunulan yeni runner kontrol özellikleri ve içerik hariç tutma mekanizmaları, kuruluşların kod inceleme süreçlerini daha güvenli, tutarlı ve yönetilebilir hale getirmelerine olanak tanır. Bu özellikler sayesinde, yöneticiler kuruluş genelinde standartları belirleyebilir, performansı optimize edebilir ve hassas verilerin güvenliğini sağlayabilir. Bu özelliklerin doğru bir şekilde uygulanması, hem geliştirme sürecini hızlandırır hem de güvenlik açıklarını minimize eder.

Ek Kaynaklar

Kaynak

4sysops