Modül 7 · Domain 7 — Privacy & Context Exclusions (%10-15) · ⏱ 14 dakika

Content exclusion yapılandırması

Content exclusion configuration

Bu derste neler öğreneceksin

  • Content exclusion ile nelerin Copilot context'inden çıkarılabileceğini tanımlamak
  • Farklı exclusion yöntemlerini (YAML, GitHub UI, .gitignore benzeri) uygulamak
  • Exclusion konfigürasyonunun sınırlarını anlamak
  • Hangi dosya/klasörlerin her zaman exclude edilmesi gerektiğini listelemek

Content exclusion neden gerekli?

Copilot, IDE’de açık tüm dosyaları potansiyel context olarak kullanır. Bu, istemeden hassas bilgilerin modele gönderilmesine yol açabilir:

  • API key, token, şifre içeren config dosyaları
  • Müşteri PII verisi içeren kayıt dosyaları
  • Fikri mülkiyet içeren lisanslı kaynak kodu
  • Yasal kısıtlamalı dosyalar (NDA, third-party code)

Yapılandırma yöntemleri

Yöntem 1: GitHub UI (Business/Enterprise)

GitHub.com → Organizasyon → Settings → Copilot → Content exclusion
→ "Add content exclusion"
→ Pattern gir: "config/secrets/**"

Bu yöntem tüm organizasyon kullanıcıları için geçerlidir.

Yöntem 2: Repo içi YAML

# .github/copilot-exclusions.yaml
exclusions:
  - pattern: "**/.env"
    reason: "Environment variables with secrets"
  - pattern: "config/secrets/**"
    reason: "Production credentials"
  - pattern: "data/customer-exports/**"
    reason: "PII data"
  - pattern: "**/*.pem"
    reason: "Private keys"
  - pattern: "src/billing/**"
    reason: "Third-party licensed code"

Her zaman exclude edilmesi önerilen pattern’ler

# Standart "minimum güvenlik" exclusion listesi
exclusions:
  - "**/.env"
  - "**/.env.*"
  - "**/secrets/**"
  - "**/credentials/**"
  - "**/*.pem"
  - "**/*.key"
  - "**/*.p12"
  - "**/config/production.*"
  - "**/__pycache__/**"
  - "**/node_modules/**"

Exclusion’ın sınırları

Content exclusion kesin garanti değildir:

  • Geliştirici aynı içeriği başka bir dosyaya kopyalarsa exclude edilmez
  • Copilot Chat’e manuel yapıştırılan veriyi engelleyemez
  • Sadece IDE context akışını keser; geliştiricinin kasıtlı veri girişini değil

Bu nedenle exclusion tek başına yeterli değil — eğitim ve politika da gerekli.

Sınavda sıkça gelen senaryo

“Bir geliştirici .env dosyasındaki değerlerin Copilot önerilerinde göründüğünü fark ediyor. Hızlı çözüm?”

Cevap: Content exclusion ile **/.env pattern’ini ekle (GitHub UI veya YAML).

“Telemetriyi kapat” yanlış — telemetri dış paylaşımla ilgili, IDE içi context akışını değil.

Sırada ne var?

Bir sonraki derste SOC2 ve GDPR uyumluluğu — kurumsal compliance çerçevelerinde Copilot’un nasıl konumlandığı.