【问题标题】:Running tests with API authentication in Travis CI without exposing API passwords在 Travis CI 中使用 API 身份验证运行测试而不暴露 API 密码
【发布时间】:2014-03-22 06:06:05
【问题描述】:

我在 Github 上有一个 Rails 应用程序,它使用一些需要密码验证的外部 API。 现在,我在一个不在 git 中的文件和一些使用 VCR gem 的集成测试中拥有该 API 的凭据,因此这些测试在 Travis 中总是失败,因为它们没有 API 的凭据。我无法将我的 VCR 磁带检查到 git 中,因为我的用户名仍然是纯文本的,也许还有一些其他数据最好不要暴露。我想我可以使用普通的 webmock 来模拟 API 响应,但我认为这太麻烦且容易出错。

有没有办法编写使用外部 API 的测试,该 API 仍然可以在 Travis 上运行,而不会在 Github 上暴露我的 API 密码?

【问题讨论】:

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


    【解决方案1】:

    您可以使用travis 工具加密您的 Travis 变量。

    您使用travis encrypt FOO=<your passowrd/sensitive data here> 加密您的变量,这将打印出类似:secure: "djfhfjriwjdncml2948328$+@jdjw"

    然后您可以在环境变量或其他任何地方使用该变量。

    例如,如果您将该变量复制到环境部分,则可以安全地存储您的环境变量。

    env:
      - secure: "djfhfjriwjdncml2948328$+@jdjw"
    

    现在,环境变量 FOO 以安全的方式保存您的密码。要了解更多信息,您可以阅读此here

    【讨论】:

      【解决方案2】:

      我无法将我的 VCR 磁带检查到 git 中,因为我的用户名仍然是纯文本格式,也许还有一些其他数据最好不要暴露。

      VCR 支持过滤掉这样的敏感数据:

      https://relishapp.com/vcr/vcr/v/2-8-0/docs/configuration/filter-sensitive-data

      【讨论】:

        猜你喜欢
        • 2022-11-10
        • 2016-12-10
        • 1970-01-01
        • 2013-01-20
        • 2015-02-06
        • 2018-07-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多