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

use*_*154 90 api continuous-integration api-key travis-ci

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

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

Odi*_*Odi 96

Travis具有加密环境变量的功能("加密环境变量").这可用于保护您的秘密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
Run Code Online (Sandbox Code Playgroud)

这为您提供以下输出:

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

  secure: "OrEeqU0z6GJdC6Sx/XI7AMiQ8NM9GwPpZkVDq6cBHcD6OlSppkSwm6JvopTR\newLDTdtbk/dxKurUzwTeRbplIEe9DiyVDCzEiJGfgfq7woh+GRo+q6+UIWLE\n3nowpI9AzXt7iBhoKhV9lJ1MROrnn4DnlKxAEUlHTDi4Wk8Ei/g="
Run Code Online (Sandbox Code Playgroud)

  • 不要忘记记录您正在使用的变量以及原因,因为一旦加密它们,只有拥有原始密钥的人才能恢复它们. (12认同)
  • 使用`--add env.global`选项到`travis`命令,它将自动修改你的.travis.yml. (3认同)
  • 看起来Travis gem的较新版本更喜欢以相反的顺序使用其参数:`travis crypto [args ..] [options]`,即,您要进行`travis crypto MY_SECRET_ENV = super_secret -r my_username / my_repo `。首先放置选项,最后将要加密的数据显示警告。 (2认同)

Esp*_*azi 6

根据特拉维斯CI文件它说:

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

travis encrypt $(heroku auth:token) --add deploy.api_key
Run Code Online (Sandbox Code Playgroud)

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


pom*_*ber 5

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

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

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

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

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