Travis CI Slack 集成开源项目

Travis CI Slack integration open-source project

我们大学目前正在开发一个开源项目,作为项目课程的一部分。我们为我们的机构维护 "private" Slack,我们没有单独的项目。因此,我们有几个与项目无关的频道。

由于 Travis CI 不支持向组织的所有成员发送失败构建的电子邮件,我们正在探索将 Slack 与 Travis 集成 CI。

然而,Travis <-> Slack 令牌是 "semi-secret",因此我们不希望通过将令牌放入我们的 .travis.yml 中来劫持我们的 Slack,它与其他令牌一起受版本控制的项目。

Travis CI 和 Slack 都鼓励加密令牌,但尚不清楚这是否可以安全地将令牌包含在受控版本中 .travis.yml

当 Slack 并非完全专用于项目时,创建 Slack <-> Travis 集成是否可行?环境变量是否足以解决我们的安全问题?

是的,在 travis.yml 中存储高度加密的 Slack 令牌是公认的做法。将 Travis-CI 集成添加到 Slack 并获得令牌后,有必要使用 cli 命令 "encrypt" 将新部分 notifications: slack: secure 插入 travis.yml.

你 运行 来自本地 git 回购文件夹的这个命令,使用来自 Slack 的令牌:-

travis encrypt "myaccount:aa1BBBBBcCCCC111122" --add notifications.slack

另请参阅:https://docs.travis-ci.com/user/notifications/#Slack-notifications

正如您提到的共享团队,您可以在团队项目中定位相关 channel/channels,确保使用 travis encrypt "account:token#channel" --add notifications.slack.rooms 加密这些内容:-

notifications:
  slack: '<account>:<token>#development'

加密 private/public 密钥是每个存储库。

作为参考,您可以查看加密的实施方式,因为您可以验证它是否符合您组织的安全标准:- https://github.com/travis-ci/travis.rb/blob/master/lib/travis/cli/encrypt.rb