我正在开发一个rails应用程序,如果发生某个进程,我需要在github上发送一个问题。要发送帖子请求,我需要使用我的github用户名和密码。我无法在开放时使用我的密码。我该怎么办?
我对rails config中的secrets.yml
文件有所了解,但我甚至无法将密码放在那里。我将我的应用程序放在github上,任何人都可以访问。我应该如何使用secrets.yml文件存储我的密码并在我的rails应用程序中使用它?
答案 0 :(得分:2)
2个选项:
将其设为environmental variable。您是如何完全依赖于您使用的操作系统。有很多关于如何操作以及如何从Rails应用程序访问它的教程。这些变量仅在本地可见,并且在您将代码推送到GitHub时不会被看到。
将您的secrets.yml
添加到.gitignore
文件中。如果您没有.gitignore
文件,请在项目的根目录中创建一个。{1}}。然后,只需将secrets.yml
添加到该文件即可。一旦你这样做,git将永远忽略任何提交,推送等文件,并且如果你将代码推送到GitHub则不会显示。但是,如果您已经有一个secrets.yml
文件并且之前已经通过git进行了跟踪,那么您需要删除该文件的历史记录。有关如何执行此操作的详细信息,请参阅here。
答案 1 :(得分:1)
您不应该将secret.yml
提交到您的git存储库。包含生产机密的secret.yml
应仅存在于服务器上(并且只能由服务器管理员访问)。
此外,您可能希望使用API令牌而不是用户名和密码,因为API令牌更容易更改。
答案 2 :(得分:0)
这可能是一个很好的解决方案。
https://github.com/attr-encrypted/attr_encrypted
您可以加密密码并将其保存到分配给用户的数据库中(如果您有一个当然)。
如果您没有用户,那么您将无法使用环境变量和secrets.yml或其他类似解决方案