Как правило, секреты никогда не передаются в хранилища. Просто поместите их в файл конфигурации (например, config.yaml
или secrets.xml
или env.sh
или аналогичный); скопировать файл (например, config.yaml.example
или secrets-skel.xml
или env.sh.sample
); поместите первый в .gitignore
(или эквивалентный, если вы не еретик из Git) и замените все секреты во втором заполнителями. Зафиксируйте второй, чтобы каждый, кто проверяет проект, знал формат, который они должны иметь; но секрет никогда не касается хранилища. Если вам нужно поделиться ключами между разработчиками, сделайте это другим способом (от IRC / Slack / Email до зашифрованного USB-устройства хранения данных, в зависимости от того, насколько конфиденциальным является материал).
Если вы используете YAML-ишное решение, в коде вы можете попытаться найти файл, если его нет, использовать среду или наоборот - искать среду, если нет переменных, искать файл конфигурации. читать из (и, возможно, даже вставить его в ENV
, чтобы вам не понадобился другой объект конфигурации; вы можете сделать это в виде config/application.rb
. Если вы используете подход env.sh
, вы можете объявить окружение переменные напрямую, когда вам нужно начать разработку, вы можете source env.sh
(или короче . env.sh
) настроить их.