ruby-on-rails - 在不暴露 API 密码的情况下在 Travis CI 中使用 API 身份验证运行测试

标签 ruby-on-rails api authentication testing travis-ci

我在 Github 上有一个 Rails 应用程序,它使用一些需要密码身份验证的外部 API。 现在,我在一个不在 git 中的文件中拥有该 API 的凭据和一些使用 VCR gem 的集成测试,因此这些测试在 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 - 在不暴露 API 密码的情况下在 Travis CI 中使用 API 身份验证运行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22574109/

相关文章:

ruby-on-rails - rails : Unable to access log file

javascript - 尝试建立 Angular 项目时的业力问题

ruby-on-rails - 安装 mysql2 gem 错误

ruby-on-rails - Cast Rails 系列到 Postgres 系列

api - 具有 AngularJS 身份验证的 Semantics3 API

php - 如何验证或限制用户的直接 SQL 输入?

api - 在什么情况下代理会删除 HTTP 请求 header ?

python - 在 Django 中使用 Zoho smtp 的身份验证失败

node.js - JWT 在 iOS Swift 应用程序中使用真的安全吗?

java - 身份验证处理程序中的 Spring Autowiring