加密令牌时如何在Travis-CI通知中覆盖Slack通道?

时间:2015-06-25 13:42:52

标签: travis-ci slack-api

关于Slack的Travis-CI通知的在线文档说:

  

也可以覆盖频道,只需将#添加到配置中,将#与帐户和令牌分开。

array_walk

但是,如果我想以建议的方式加密凭据:

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

工作得很好。但是当我尝试:

travis encrypt "<account>:<token>" --add notifications.slack

我获得了一个新的加密令牌,但通知是在集成时设置的默认通道上。我做错了什么?

注意:我们使用企业版的所有东西(Slack,Travis,GitHub),以防这可能发挥作用。

3 个答案:

答案 0 :(得分:6)

命令不是正确,它最后缺少.rooms属性。它应该是

travis encrypt "account:token#channel" --add notifications.slack.rooms

答案 1 :(得分:2)

encrypt命令是正确的:

travis encrypt "account:token#channel" --add notifications.slack

但.travis.yml中的结果将是(错误的,这就是问题所在):

notifications:
    slack: 
       secure: xxxxxxxxxxxxxxxxxxxxxx
  

你必须在加密命令之后手动编辑.travis.yml并添加房间,所以正确的是:

notifications:
  slack:
    rooms:
      secure: xxxxxxxxxxxxxx

答案 2 :(得分:1)

您需要为要包含在通知中的每个松弛通道运行以下加密命令。 确保保留每封安全加密邮件的副本,因为该命令会在每次运行时覆盖travis.yml

travis encrypt "account:token#channel1" --add notifications.slack.rooms
travis encrypt "account:token#channel2" --add notifications.slack.rooms

最后按以下格式添加每个频道的令牌:

notifications:
  slack:
    rooms:
      - secure: secure_token_for_channel1
      - secure: secure_token_for_channel2