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