在Travis CI中使用API​​身份验证运行测试,而不暴露API密码

meo*_*ore 4 authentication testing api ruby-on-rails travis-ci

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

有没有办法编写使用外部API的测试仍然在Travis上运行的身份验证,而不在Github上公开我的API密码?

jos*_*son 5

您可以使用该travis工具加密Travis变量.

你用你的变量加密travis encrypt FOO=<your passowrd/sensitive data here>这将打印出如下内容:secure: "djfhfjriwjdncml2948328$+@jdjw"

然后,您可以在您的envoirmental变量或其他任何地方使用该变量.

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

env:
  - secure: "djfhfjriwjdncml2948328$+@jdjw"
Run Code Online (Sandbox Code Playgroud)

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