Modül 4 · Modern development · ⏱ 10 dakika

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

ÖzellikCodespacesLokal
KurulumOtomatikManuel
TaşınabilirlikHer cihazdanSadece lokal makine
PerformansCloud VMDonanıma bağlı
İzolasyonHer repo ayrı containerPaylaşılan ortam
MaliyetKullanım başınaDonanım
Offline çalışmaHayırEvet

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.json olmadan 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/push yapı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.