Default setup vs advanced setup
Default setup vs advanced setup
Bu derste neler öğreneceksin
- Default setup ile advanced setup arasındaki temel farkları bilmek
- Her kurulum modunun hangi senaryoya uygun olduğunu kavramak
- Default setup'ın otomatik yapılandırdığı unsurları anlamak
- Advanced setup için workflow.yml gereksinimlerini öğrenmek
Default setup nedir?
Default setup, GitHub’ın CodeQL’i otomatik yapılandırdığı moddur. Hiçbir YAML dosyası yazman gerekmez; GitHub dil tespiti, sorgu suite seçimi ve tarama zamanlamasını kendi yönetir.
Repo → Security → Code scanning → Set up → Default
↓
GitHub otomatik:
✓ Dil tespiti (repo içeriğine göre)
✓ Query suite seçimi (security varsayılan)
✓ Tarama tetikleyicisi (push + PR + haftalık)
✓ Sorgu sürümü güncellemesi (otomatik)
Advanced setup nedir?
Advanced setup, CodeQL workflow’unu kendi YAML dosyan ile kontrol ettiğin
moddur. .github/workflows/codeql.yml dosyasına yazılır.
name: CodeQL
on:
push:
branches: [main]
pull_request:
branches: [main]
schedule:
- cron: '0 6 * * 1'
jobs:
analyze:
runs-on: ubuntu-latest
permissions:
security-events: write
contents: read
strategy:
matrix:
language: [javascript, python]
steps:
- uses: actions/checkout@v4
- uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
queries: security-extended
- uses: github/codeql-action/autobuild@v3
- uses: github/codeql-action/analyze@v3
Karşılaştırma tablosu
| Özellik | Default setup | Advanced setup |
|---|---|---|
| YAML yazma gerekli | ✗ | ✓ |
| Dil tespiti otomatik | ✓ | Manuel belirtilir |
| Custom query desteği | ✗ | ✓ |
| Build süreci kontrolü | ✗ | ✓ |
| Query suite seçimi | Sınırlı | Tam |
| Self-hosted runner | ✗ | ✓ |
| Kurulum süresi | Dakikalar | Daha uzun |
| Sorgu güncellemesi | Otomatik | Manuel yönetilir |
Hangi durumda hangisini kullan?
Default setup tercih et:
- Hızlı başlangıç, minimum yapılandırma
- Standart sorgular yeterli
- Küçük-orta takım, özel ihtiyaç yok
- Derlenmeyen diller (JavaScript, Python, Ruby)
Advanced setup tercih et:
- Custom queries veya custom query suite
- Derleme gerektiren diller (C/C++, Java) ve karmaşık build süreci
- Self-hosted runner kullanımı
- Organizasyona özgü tarama zamanlaması
- Sorgu sürümünü kendin kontrol etmek istiyorsun
Geçiş: default → advanced
Default setup aktifken advanced’e geçiş:
Repo → Security → Code scanning → CodeQL → Switch to advanced
Bu işlem mevcut .github/workflows/codeql.yml dosyasını oluşturur (varsa üzerine yazar).
Sınavda tuzak
“Organizasyonumuzda tüm repolara CodeQL kurmak istiyoruz, minimum iş yüküyle.”
Cevap: Default setup + organization genelinde etkinleştirme.
“Security-extended sorgu suite kullanmak ve custom query eklemek istiyoruz.”
Cevap: Advanced setup gerekir.
Sırada ne var?
Advanced setup’ta workflow özelleştirme — tarama tetikleyicileri, dil matrisi ve build adımları.