Скрытие моей конфиденциальной информации (например, пароля) от github - PullRequest
13 голосов
/ 19 ноября 2011

Я только что настроил Devise (плагин аутентификации rails), чтобы отправлять подтверждение по электронной почте при регистрации.Это включало в себя вставку в файл environment.rb следующего:

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
   :tls => true,
   :address => "smtp.gmail.com",
   :port => 587,
   :domain => "gmail.com",
   :authentication => :login,
   :user_name => "[my email]",
   :password => "[my pass]"
 }

Я, очевидно, не хочу выдвигать это на github, когда [мой проход] просто сидит там.Здесь есть стандартная практика?

Ответы [ 3 ]

10 голосов
/ 19 ноября 2011

Стандарт заключается в том, чтобы поместить ваши параметры конфигурации в один файл YAML, который не включен в ваше хранилище.

Затем вы просто получаете данные из него.

Check Railscast " # 85 Файл конфигурации YAML", чтобы увидеть его в действии.

4 голосов
/ 19 ноября 2011

apneadiving является правильным, добавляя к его решению, другие люди, загружающие ваш код, возможно, не поймут быстро, как генерировать этот yml, поэтому вам нужно дать им подсказку, имея следующую структуру:

config
  |
  |--- environment.rb
  |--- mail_settings.yml
  |--- main_settings.yml.example

Наличие файла 'mail_settings.yml' содержит вашу конфиденциальную информацию, НЕ включенную в репо, и включает в себя 'main_settings.yml.example', включенного в ваш репо, и имеет ту же структуру, что и 'mail_settings.yml'.

И чтобы быть более полезным, предоставьте в файле README раздел, описывающий, что людям необходимо скопировать файл mail_settings.yml.example в mail_settings.yml и улучшить его содержимое.

1 голос
/ 19 ноября 2011

Создайте файл конфигурации, содержащий настройки почты, и загрузите их из файла.Проверьте в файле конфигурации все настройки удалены.Попросите ваше приложение проверить, заполнен ли файл, а если нет, отобразите ошибку и корректно завершите работу (или отключите рассылку, просто убедитесь, что пользователь знает, что происходит).

Этоимеет дополнительное преимущество в том, что пользователи могут легко изменять настройки почты без необходимости редактировать код.Попросить пользователя отредактировать код для установки конфигурации, в общем, плохая идея.Кроме того, вы можете хранить конфигурацию отдельно от кода, чтобы к ней было проще добраться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...