Ruby on rails 在Rails应用程序中使用秘密密码
我正在开发一个rails应用程序,如果某个进程发生,我需要在github上发送一个问题。要发送post请求,我需要使用我的github用户名和密码。我无法在open中使用我的密码。我该怎么办Ruby on rails 在Rails应用程序中使用秘密密码,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我正在开发一个rails应用程序,如果某个进程发生,我需要在github上发送一个问题。要发送post请求,我需要使用我的github用户名和密码。我无法在open中使用我的密码。我该怎么办 我知道rails配置中的secrets.yml文件,但我甚至不能在那里输入密码。我将把我的应用程序放在github上,任何人都可以访问。我应该如何使用secrets.yml文件存储密码并在rails应用程序中使用它?您不应该将secret.yml提交到git存储库。包含生产机密的secret.yml应该只存
我知道rails配置中的
secrets.yml
文件,但我甚至不能在那里输入密码。我将把我的应用程序放在github上,任何人都可以访问。我应该如何使用secrets.yml文件存储密码并在rails应用程序中使用它?您不应该将secret.yml
提交到git存储库。包含生产机密的secret.yml
应该只存在于服务器上(并且只能由服务器管理员访问)
此外,您可能希望使用API令牌而不是用户名和密码,因为API令牌更容易更改。2选项:
secrets.yml
添加到.gitignore
文件中。如果没有.gitignore
文件,请在项目的根目录中创建一个。然后,只需向该文件添加secrets.yml
。一旦您这样做,git将在任何提交、推送等操作中永远忽略该文件,并且如果您将代码推送到GitHub,它将不会显示。但是,如果您已经有一个secrets.yml
文件,并且git以前跟踪过它,那么您需要删除该文件的历史记录。有关如何执行此操作的详细信息,请参见这可能是一个很好的解决方案 您可以加密密码并将其保存到分配给用户的数据库中(当然,如果您有)
如果您没有用户,那么您将不得不使用环境变量和secrets.yml或其他类似的解决方案使用secrets.yml和使用环境变量。您将把secrets.yml存储为基,这样您就可以记住所需的秘密,但将秘密存储在env变量中。看看:我的环境变量导出到哪里来存储ubuntu linux系统中的密码?如果我使用ubuntu linux,我应该遵循什么步骤?如果我写
,那么我应该在哪里导出和写入密码?另一个问题是,如果我与某人合作,而他想要使用该应用程序,该怎么办?这是一个关于环境变量的非常通俗的教程,还有一个关于环境变量的很好的AskUbuntu问题。我建议编辑会话范围变量的~/.profile
文件。我还建议您使用更详细的变量名,例如GITHUB\u PASSWORD
,这样您就可以知道它是哪个密码,以防您有多个密码。如果您正在合作,只需让其他人设置一个具有相同名称和值的环境变量。如何通过此配置的travis ci测试?Travis无法知道我的密码,也无法按照Travis CI关于如何为您的测试定义环境变量的规定行事。如果您不信任Travis CI提供您的GitHub密码,您可能不应该使用他们的服务。