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ığı.