Encrypted Secrets
Last updated
Was this helpful?
Last updated
Was this helpful?
GitHub Actions’da Encrypted Secrets, repo (veya organization ya da environment) düzeyinde tanımlanan gizli bilgilerdir. API anahtarları, parolalar, tokenlar gibi hassas verileri koduna veya log’lara açıkça eklemeden, güvenli şekilde kullanmanı sağlarlar.
“Secret” olarak tanımladığın değerler (ör. MY_TOKEN
, DB_PASSWORD
), GitHub tarafından şifreli saklanır.
Workflow içinde secrets.<SECRET_NAME>
ifadesiyle bu değere erişebilirsin:
Log’lar veya UI aracılığıyla bu secret’ın içeriği asla düz metin halinde gösterilmez; maskelenmiş biçimde (***
) çıkar.
Alfasayısal karakterler ve alt tire (_
) kullanılabilir; boşluk, özel karakter yok. Örneğin: HELLO_world123
.
GITHUB_
ile başlamamalı (rezerv).
Rakamla başlamamalı.
Büyük-küçük harfe duyarsız (case-insensitive) ama girerken tutarlı olmak önerilir.
Aynı düzeyde benzersiz olmalı (aynı isimde bir secret tekrar eklenemez).
Repo Düzeyinde:
“Settings” → “Secrets and variables” → “Actions” → “New repository secret” butonu.
“Name” ve “Value” girip kaydedersin (örn. MY_API_KEY
).
Organization Düzeyinde:
“Organization Settings” → “Security” → “Actions” → “New organization secret”.
Yetkili repo(lar)ı seçebilirsin.
Environment Düzeyinde:
Repo “Settings” → “Environments” → Environment’ı seç → “Add secret”.
env:
satırında secrets.MY_SECRET
atanır, step içinde $MY_SECRET
olarak erişilir.
Log’da gerçek değer maskeli görünür (***
), bu yüzden gizliliği korunur.
Eğer echo $MY_SECRET
dersen, GitHub Actions loglarda ***
olarak maskeler.
Fakat secret değerini başka bir string’e dönüştürür veya harf harf yazarsan, maskeleme davranışı bozulabilir. Bu gibi hileli durumlardan kaçınmak gerekir.
API Keys / Tokens: REST API veya SaaS hizmeti için ihtiyacın olan anahtarlar.
Database Credentials: DB_USER
, DB_PASS
gibi bilgiler.
SSH Keys: Bazı dağıtım (deployment) senaryolarında SSH key saklama.
Secrets → GitHub Actions’da gizli bilgi saklama ve kullanma mekanizması.
secrets
context → secrets.MY_SECRET
şeklinde değer atayıp step’lerde kullanırsın.
Organizasyon, Repo, Environment katmanlarında tanımlayabilir, erişim kısıtlaması yapabilirsin.
Maskelenir → Log’larda plain text görünmez, “***” olarak gizlenir.
Böylece şifrelere, tokenlara, hassas bilgilere hem CI/CD sürecinde hem de log’larda güvenli şekilde erişme olanağı elde edersin.