Bazı kodları GitHub'a eklemek istiyorum. Yayınlamak istemediğim bazı özel API anahtarlarını içerir. Otomatik olarak saklamanın bir yolu var mı? Kodu elimden el ile kaldırmalı mıyım?Github'a API anahtarlarını gizlemek için kod nasıl kullanılır?
cevap
.env
dosyalarını kullanmayı düşünmeli ve çevresel değişkenlerden anahtarları okumalısınız. Nasıl yapılır, kullandığınız dile ve araçlara bağlıdır (node.js, php, vb. Için).
.env
dosyasını .env
ekini .gitignore
ürününe ekleyerek kayıttan kaldırabilirsiniz. Ayrıca, uygulamanızın gerektirdiği şemayı göstermek için kukla verilerle veya boşluklarla örnek bir yapılandırmayı .env.example
da yükleyebilirsiniz.
API anahtarınızın kodda olması, muhtemelen kötü bir fikirdir. Bu, kodunuzu kullanmak isteyen herkesin kodu düzenlemesi ve yeniden oluşturması gerektiği anlamına gelir.
Bu tür kayıtlar için kullanılan ders kitabı çözümü, bazı yapılandırma dosyalarına kimlik bilgilerini taşımak ve yapılandırma dosyasının yapısının ve konumunun nasıl olduğu hakkında README.md
dosyasında net belgeler eklemektir. Kendiniz (ve başkasının) özel bilgilerinizi yanlışlıkla GitHub'a göndermesini engellemek için gitignore
dosyanızda bir giriş ekleyebilirsiniz.
API anahtarlarınızı gizlemek için sunucunuza enviornment variables ekleyebilirsiniz. Tüm popüler programlama dilleri, enviornment değişkenlerini etkinleştirmek için varsayılan yöntemlere sahiptir.
Eğer depoda bunları işlemek ZORUNLU sen
config.yml
gibi mantıklı verilerle dosyaları var her zaman. Size bir örnek göstereceğim.
bazı kullanıcı adı ve şifre ile bir yaml dosyası için varsayalım:
# app/config/credentials.yml
credentials:
username: foo
password: bar
Eğer foo
ve kullanıcı adı ve şifre alanlarını korumak amacı bar values, remove this file from your repository, but add just a
distribution` dosyasını, ama gerçek değerler olmadan gizlemek isterseniz: Eğer app/config/credentials.yml
için app/config/credentials.yml.dist
kopyalayarak, bu dosyayı alabilirsiniz yükleme sırasında
# app/config/credentials.yml.dist
credentials:
username: ~
password: ~
.
Ayrıca, .gitignore
dosyaya app/config/credentials.yml
eklemeyi unutmayın. API anahtarları için
Its aynı:
# app/config/config.yml
config:
credentials:
username: foo
password: bar
api_stuffs:
api_foo: fooooo
api_secret: baaaaar
api_token: tooooken
Bu yapılandırma dosyaları için çalışır ve size bir yapılandırmanın yapısını değil, mantıklı verileri paylaşmak için gereken her zaman kazandırır iyi kalıptır. Ini dosyaları, yapılandırmaları vb.
Bilgi için teşekkürler. :) –
Lütfen, O_o unvanını açıklayın – sensorario
Başkalarının görmesini istemediğiniz bilgileri içeren hiçbir şeyi hiçbir zaman taahhüt etmeyin. –