我在 Github 上有一个 Rails 应用程序,它使用一些需要密码身份验证的外部 API。
现在,我在一个不在 git 中的文件和一些使用 VCR gem 的集成测试中拥有该 API 的凭据,因此这些测试在 Travis 中总是失败,因为它们没有 API 的凭据。我无法将我的 VCR 磁带检查到 git 中,因为我的用户名仍然是纯文本格式,也许还有其他一些最好不要公开的数据。我想我可以使用普通的 webmock 来模拟 API 响应,但我认为这太麻烦且容易出错。
有没有办法编写使用外部 API 和身份验证的测试,该 API 仍然可以在 Travis 上运行,而无需在 Github 上公开我的 API 密码?
最佳答案
您可以使用 travis
工具加密您的 Travis 变量。
你用 travis encrypt FOO=<your passowrd/sensitive data here>
加密你的变量 这将打印出如下内容: secure: "djfhfjriwjdncml2948328$+@jdjw"
然后您可以在您的环境变量或其他任何地方使用该变量。
例如,如果将该变量复制到环境部分,则可以安全地存储环境变量。
env:
- secure: "djfhfjriwjdncml2948328$+@jdjw"
现在,环境变量 FOO 以安全的方式保存您的密码。要了解更多信息,您可以阅读此 here
关于ruby-on-rails - 在 Travis CI 中使用 API 身份验证运行测试而不暴露 API 密码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22574109/