在travis-ci上使用秘密api密钥

时间:2012-02-18 04:06:02

标签: api continuous-integration api-key travis-ci

我想将travis-ci用于projects之一。

该项目是一个API包装器,因此许多测试都依赖于使用秘密API密钥。要在本地测试,我只是将它们存储为环境变量。什么是在Travis上使用这些键的安全方法?

4 个答案:

答案 0 :(得分:95)

Travis具有加密环境变量("Encrypting environment variables")的功能。这可用于保护您的秘密API密钥。我已经成功地将它用于我的Heroku API密钥。

您只需安装travis gem,加密所需的字符串并在.travis.yml中添加加密字符串即可。加密仅对一个存储库有效。 travis命令获取您的repo的公钥,然后可以在构建期间解密该字符串。

gem install --user travis
travis encrypt MY_SECRET_ENV=super_secret -r my_username/my_repo

这为您提供以下输出:

Please add the following to your .travis.yml file:

  secure: "OrEeqU0z6GJdC6Sx/XI7AMiQ8NM9GwPpZkVDq6cBHcD6OlSppkSwm6JvopTR\newLDTdtbk/dxKurUzwTeRbplIEe9DiyVDCzEiJGfgfq7woh+GRo+q6+UIWLE\n3nowpI9AzXt7iBhoKhV9lJ1MROrnn4DnlKxAEUlHTDi4Wk8Ei/g="

答案 1 :(得分:6)

根据travis ci文档中的this ,它说:

  

如果您同时安装了Heroku和Travis CI命令行客户端,则可以通过从项目目录运行以下命令来获取密钥,对其进行加密并将其添加到.travis.yml中:

travis encrypt $(heroku auth:token) --add deploy.api_key

参考the following 教程,根据您的操作系统安装heroku客户端

答案 2 :(得分:3)

您还可以定义秘密variables in repository settings

  

存储库设置中定义的变量对于所有构建都是相同的,并且当您重新启动旧构建时,它使用最新值。这些变量不会自动提供给分叉。

     

在存储库设置中定义变量:

     
      
  • 每个存储库都不同。
  •   
  • 包含敏感数据,例如第三方凭据。
  •   
     

要在Repository Settings中定义变量,请确保您已登录,导航到相关存储库,从cog菜单中选择“Settings”,然后单击“Environment Variables”部分中的“Add new variable”。

答案 3 :(得分:0)

使用一组不同的API密钥并以相同的方式执行。您的travis框会在构建运行时进行设置,然后在构建完成后再次完全拆除。在构建过程中,您可以根据自己的方式访问自己的盒子,因此您可以随意使用它。