93

我想在我的一个项目中使用travis-ci

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

4

4 回答 4

99

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

您所要做的就是安装 travis gem,加密您想要的字符串并将加密的字符串添加到您的.travis.yml. 加密仅对一个存储库有效。该travis命令获取您的存储库的公钥,然后可以在构建期间解密该字符串。

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="
于 2012-10-08T08:55:25.220 回答
7

根据travis ci 文档中的这个,据说:

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

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

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

于 2017-09-25T11:30:38.247 回答
5

您还可以在存储库设置中定义秘密变量

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

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

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

要在存储库设置中定义变量,请确保您已登录,导航到相关存储库,从 cog 菜单中选择“设置”,然后单击“环境变量”部分中的“添加新变量”。

于 2017-04-06T19:09:10.187 回答
0

使用一组不同的 API 密钥并以相同的方式进行操作。您的 travis 盒子为您的构建运行设置,然后在构建完成后再次完全拆除。在构建过程中,您可以对您的盒子进行 root 访问,因此您可以随心所欲地使用它。

于 2012-02-18T11:13:31.140 回答