11

上下文:

我已经开源了一个由 Travis-CI 测试的存储库。Travis 为测试运行提供了构建通知挂钩,因此您可以在 IRC、Flowdock、Campfire 和 HipChat 中获得通知。要配置这些钩子,您必须将设置添加到您的.travis.yml配置文件中,该文件是公开的。对于 Hipchat,它看起来像这样:

notifications:
  hipchat: [api token]@[room name]

如果我只是将我的令牌以纯文本形式放在那里,每个人都可以看到我的 API 令牌并访问/发送垃圾邮件我的聊天室。这就是 Travis 添加安全环境变量的原因。基本上,您可以使用您的密钥加密字符串并将它们专门绑定到存储库,因此 Travis 可以访问秘密 API 密钥。

你在本地做什么:

gem install travis
travis encrypt github-user/repo MY_SECRET_ENV=super_secret

你投入了什么.travis.yml

secure: <encrypted string here>

问题:

不幸的是,文档并不过分冗长,谷歌没有帮助,stackoverflow 也没有帮助我无法让它工作。

这是我的第一次尝试

travis encrypt github-user/repo HIPCHAT=super_secret

secure: <encrypted string here>
notifications:
  hipchat: <%= ENV['HIPCHAT'] %>@hipchat-room

由于这不起作用,我去了freenode上的travis irc,这就是他们的建议

travis encrypt github-user/repo key@hipchat-room

notifications:
  hipchat:
    secure: <encrypted string here>

正如您可能已经猜到的(为什么我要再次写这个问题?)这也不起作用。我希望你能帮我解决这个问题。非常感谢

编辑:我很怀疑自己。我对 API 密钥进行了三次检查,它正在工作。这取决于特拉维斯。

2编辑:因为这似乎是一个错误,这里是相应的GitHub 问题

4

1 回答 1

4

斯蒂芬,

你能试试这个:

notifications:
  hipchat:
    - secure: "encrypted string"

如果你不想弄乱你的提交历史,你可以将它推送到一个单独的分支上,Travis 应该为你测试那个分支。

——亨里克

于 2012-12-14T21:56:01.120 回答