CodeBlanks Logo Icon CodeBlanks

secrets

Secrets ile gizli değişken yönetimini öğrenirsin.

GitHub Secrets ile güvenli kimlik yönetimi

Veritabanı parolaları, sunucu anahtarları veya API belirteçleri asla depodaki dosyalara açıkça yazılmamalıdır. GitHub Secrets, bu hassas verileri deponun ayarlarında şifrelenmiş olarak saklar. İş akışı adımları bu gizli değişkenlere ${{ secrets.SECRET_NAME }} sözdizimiyle güvenle erişir.

- name: Giris yap
  run: ./deploy.sh
  env:
    API_KEY: ${{ secrets.PROD_API_KEY }}

GitHub, log çıktılarında secret değerlerini otomatik olarak maskeleyerek gizler.

Ortam değişkenleri (env) ve GITHUB_TOKEN

Gizli değerler genellikle adımlara env: bloğu aracılığıyla ortam değişkeni olarak iletilir. Ayrıca GitHub, her iş akışı çalıştırmasında deponun kendisiyle etkileşime geçebilmek için otomatik olarak secrets.GITHUB_TOKEN oluşturur. Bu jeton release oluşturma veya paket yayınlama yetkilerine sahiptir.

- name: Surum yayinla
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  run: gh release create v1.0.0

Harici bir anahtar üretmeye gerek kalmadan yerleşik izinlerle işlem yapabilirsin.

Uygulama Gizli değişkeni adıma bağla

Adıma env: bloğu ekleyerek TOKEN: ${{ secrets.API_TOKEN }} çevre değişkenini tanımla.

Başlangıç kodu

terminal
cat << 'EOF' > .github/workflows/ci.yml
steps:
  - name: Servise baglan
    # ortam degiskeni tanimini buraya ekle
    run: echo "Baglanti basarili"
EOF

cat .github/workflows/ci.yml

Örnek çözüm

terminal
cat << 'EOF' > .github/workflows/ci.yml
steps:
  - name: Servise baglan
    env:
      TOKEN: ${{ secrets.API_TOKEN }}
    run: echo "Baglanti basarili"
EOF

cat .github/workflows/ci.yml

Beklenen çıktı

steps:
  - name: Servise baglan
    env:
      TOKEN: ${{ secrets.API_TOKEN }}
    run: echo "Baglanti basarili"

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 GitHub Actions iş akışında tanımlı bir gizli değişkene nasıl başvurulur?

  • ${{ env.LOCAL_SECRET }}
  • ${{ github.PASSWORD }}
  • ${{ config.SECRET_NAME }}
  • ${{ secrets.SECRET_NAME }} Doğru cevap

Açıklama: Gizli değişkenlere erişmek için secrets bağlamı (${{ secrets.SECRET_NAME }}) kullanılır.

2 Gizli değişkene eriş

Soru
    env:
      KEY: ${{ ____.DEPLOY_TOKEN }}
Cevap
    env:
      KEY: ${{ secrets.DEPLOY_TOKEN }}

Açıklama: ${{ secrets.<AD> }} sözdizimi, depoda saklanan gizli anahtarın değerini çeker.

3 Güvenlik kavramları

Kavram Anlamı
secrets.<AD> Depodaki şifreli değişkene erişir
GITHUB_TOKEN Yerleşik otomatik oluşturulan jeton
Log maskeleme Konsolda gizli veriyi yıldızlar
env: Değeri ortam değişkenine bağlar

İleri seviye bölümündeki tüm dersler