该项目是一个API包装器,因此许多测试都依赖于使用秘密API密钥。要在本地测试,我只是将它们存储为环境变量。什么是在Travis上使用这些键的安全方法?
答案 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框会在构建运行时进行设置,然后在构建完成后再次完全拆除。在构建过程中,您可以根据自己的方式访问自己的盒子,因此您可以随意使用它。