GitHub Codespaces — bulut geliştirme ortamı
GitHub Codespaces — cloud development environment
Bu derste neler öğreneceksin
- GitHub Codespaces'ın ne olduğunu ve nasıl başlatıldığını öğrenmek
- devcontainer.json ile ortam yapılandırmasını anlamak
- Codespaces vs. lokal geliştirme karşılaştırmasını yapmak
- Fiyatlandırma temellerini ve ücretsiz kullanım sınırlarını bilmek
GitHub Codespaces, doğrudan tarayıcıda veya VS Code bağlantısıyla çalışan tam yapılandırılmış geliştirme ortamıdır. Yerel kurulum gerekmez; her repo için bağımsız, izole container.
Codespaces nedir?
Codespace’ler Docker container üzerinde çalışır. Repo açılır, .devcontainer/devcontainer.json yapılandırması okunur ve ortam hazırlanır. Araçlar, uzantılar, ortam değişkenleri otomatik kurulur.
Başlatmak için:
- GitHub’da herhangi bir repoda Code → Codespaces → Create codespace on main
- CLI ile:
gh codespace create --repo owner/repo
devcontainer.json
Ortamı özelleştirmek için .devcontainer/devcontainer.json kullanılır:
{
"name": "Node.js Development",
"image": "mcr.microsoft.com/devcontainers/node:20",
"features": {
"ghcr.io/devcontainers/features/git:1": {}
},
"customizations": {
"vscode": {
"extensions": [
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode"
],
"settings": {
"editor.formatOnSave": true
}
}
},
"postCreateCommand": "npm install",
"forwardPorts": [3000],
"portsAttributes": {
"3000": {
"label": "Dev Server",
"onAutoForward": "notify"
}
}
}
postCreateCommand — container oluşturulunca otomatik çalışan komut (bağımlılık yükleme vb.)
Port forwarding
Codespace içinde çalışan uygulama, port forwarding ile erişilebilir hale gelir. VS Code’un Ports sekmesinden veya tarayıcıda https://codespace-name-3000.app.github.dev gibi URL ile.
Portlar Public veya Private yapılabilir:
- Public: kimlik doğrulaması olmadan erişilebilir (dikkatli kullan)
- Private: sadece Codespace sahibi erişir
Codespaces vs. lokal geliştirme
| Özellik | Codespaces | Lokal |
|---|---|---|
| Kurulum | Otomatik | Manuel |
| Taşınabilirlik | Her cihazdan | Sadece lokal makine |
| Performans | Cloud VM | Donanıma bağlı |
| İzolasyon | Her repo ayrı container | Paylaşılan ortam |
| Maliyet | Kullanım başına | Donanım |
| Offline çalışma | Hayır | Evet |
Fiyatlandırma
GitHub, GitHub Free ve Pro kullanıcıları için aylık belirli miktarda ücretsiz Codespaces saati sunar:
- GitHub Free: 120 core-saat/ay + 15 GB depolama
- GitHub Pro: 180 core-saat/ay + 20 GB depolama
Kullanılmayan Codespace’ler saati yiymez. Varsayılan olarak 30 dakika hareketsizlikte durdurulur.
Prebuilds
Büyük repolar için prebuilds özelliği: Codespace her açılışında sıfırdan build yapmak yerine önceden hazırlanmış snapshot kullanılır. Org Settings → Codespaces → Prebuilds.
Codespaces ve PR review
PR review’ları doğrudan Codespace içinde yapılabilir. GitHub web UI’da PR → “Open in Codespace” butonuyla PR branch’i ile yeni bir Codespace açılır.
Sınav perspektifinden dikkat noktaları
- Codespaces bir container üzerinde çalışır; kapattığında dosyalar kaybolmaz (commit edilmesi gerekir)
devcontainer.jsonolmadan da çalışır — varsayılan Ubuntu ortamı kullanılır- Codespaces farklı machine type’larda çalışabilir (2-core, 4-core, 8-core…)
- Codespace içinde
git commit/pushyapılmazsa çalışmalar kaybolur (container silinince)
Sırada ne var?
Modül 4 tamamlandı. Sonraki modülde GitHub Projects ve proje yönetimini ele alacağız.