首页 文章

Travis CI Slack集成开源项目

提问于
浏览
0

在我们大学,我们目前正在开发一个开源项目,作为项目课程的一部分 . 我们为我们的机构维持一个“私人”Slack,而我们没有单独的项目 . 因此,我们有几个与项目无关的渠道 .

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

然而,Travis < - > Slack令牌是"semi-secret",因此我们不愿意将我们的Slack劫持,将令牌放在我们的 .travis.yml 中,这是与项目其余部分一起进行版本控制的 .

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

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

1 回答

  • 2

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

    您从本地git repo文件夹运行此命令,使用来自Slack的令牌: -

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

    另见:https://docs.travis-ci.com/user/notifications/#Slack-notifications

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

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

    加密私有/公共密钥是每个repo .

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

相关问题