【问题标题】:Travis CI Slack integration open-source projectTravis CI Slack 集成开源项目
【发布时间】:2016-05-11 08:07:06
【问题描述】:

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

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

但是,Travis Slack 令牌是“半秘密”的,因此我们不希望通过将令牌放入我们的 .travis.yml 中来劫持我们的 Slack,该令牌与项目的其余部分一起受版本控制。

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

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

【问题讨论】:

    标签: security version-control open-source travis-ci slack


    【解决方案1】:

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

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

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

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

    正如您提到的共享团队,您可以针对团队项目中的相关频道/频道,确保使用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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多