在development.rb中隐藏纯文本密码

时间:2014-11-09 08:51:26

标签: ruby-on-rails git github actionmailer

为了设置actionmailer / devise确认电子邮件,我需要向真正的Gmail帐户提供详细信息:

  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
  address:              'smtp.gmail.com',
  port:                 587,
  domain:               'example.com',
  user_name:            'gmailaccount@gmail.com',
  password:             'gmailpassword',
  authentication:       'plain',
  enable_starttls_auto: true  }

但是,如果我在公共存储库上的github上提交此文件,它将对整个世界可见。

一个解决方案是创建一个私有存储库,但我不认为这是最好的存储库。也许我想与其他开发人员分享代码我不知道,但我不希望他们看到我的电子邮件密码。

另一个解决方案是将developent.rb文件添加到gitignore。但是,我认为我希望将其保留在我的版本控制中,因为它随着项目的进展而变化,对于运行应用程序非常重要。

如何在不通过github向其他开发人员/人员透露我的gmail密码的情况下配置actionmailer?

---------------------- FIX ----------------------

这是一个重复的问题..我确实知道如何正确搜索信息。

如何在这里使用环境变量有一个很好的答案:

Rails : How to store mailer password safely?

2 个答案:

答案 0 :(得分:2)

您通常做的是:

  • 版本模板文件(带有解释每个字段值的文档)
  • 版本一个能够生成动作文件的脚本
  • .gitattributecontent filter driver
  • 中将该脚本声明为in here
  • 将实际值存储在 git repo之外(这样,它们就不会被误推)

smudge

(图片来自" Customizing Git Attributes"来自Git Book

这将生成具有正确值的正确文件。

答案 1 :(得分:0)

您可以加密该单个文件。这样它就会在回购中跟踪,但只有你才能真正阅读它。

有一个名为git-crypt的工具正在做这件事(免责声明:我自己没有使用过它)。