使用travis-ci上的秘密API键

我想用travis-ci来做我的一个项目 。

该项目是一个API包装,所以许多testing依赖于使用秘密的API密钥。 为了在本地进行testing,我只是将它们存储为环境variables。 在Travis上使用这些密钥的安全方法是什么?

Travis具有encryption环境variables的function( “encryption环境variables” )。 这可以用来保护您的秘密API密钥。 我已经成功地将它用于我的Heroku API密钥。

所有你需要做的就是安装Travis的gem,encryption你想要的string,并将encryption的string添加到你的.travis.yml 。 encryption只对一个存储库有效。 travis命令获取您的公共密钥,然后可以在构build过程中解密string。

 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=" 

您也可以在存储库设置中定义秘密variables :

在版本库设置中定义的variables对于所有版本都是相同的,并且当您重新启动旧版本时,它将使用最新的值。 这些variables不会自动提供给叉子。

在Repository Settings中定义variables:

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

要在Repository Settings中定义variables,请确保已login,导航到相关存储库,从cog菜单中select“Settings”,然后单击“Environment Variables”部分中的“Add new variable”。

使用一组不同的API密钥,并以相同的方式进行操作。 您的Travis盒子会在您的构build运行中获得设置,然后在构build完成后再次完全拆除。 在构build过程中,您可以通过root访问您的盒子,因此您可以随心所欲地做任何事情。

根据这个在travis ci文件中说:

如果你同时安装了Heroku和Travis CI命令行客户端,你可以得到你的密钥,encryption它,并通过从你的项目目录运行以下命令将它添加到你的.travis.yml中:

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

请参考以下教程根据您的操作系统安装heroku客户端