【问题标题】:Send messages from Jenkins to multiple Slack channels将消息从 Jenkins 发送到多个 Slack 频道
【发布时间】:2021-12-27 21:41:03
【问题描述】:

根据主要Jenkins-Slack documentation,您必须将 Jenkins 应用程序配置为 slack,并在那里指定插件可以发布的单个频道。现在就我而言,我需要从 Jenkins 服务器发布到多个频道和用户,管理多个身份验证令牌非常麻烦。有没有办法让一个令牌适用于所有渠道和用户?还有其他方法吗?我看到 Jenkins 插件有一个 bot 复选框,但几乎没有关于如何使其工作的文档。

【问题讨论】:

    标签: jenkins slack


    【解决方案1】:

    你可以加channel: '#CHANNEL_NAME:

    更多信息:https://jenkins.io/doc/pipeline/steps/slack/

    post {
        success {
          slackSend (channel: '#ch1', color: '#00FF00', message: "SUCCESSFUL: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
        }
    
        failure {
          slackSend (channel: '#ch1', color: '#FF0000', message: "FAILED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
        }
    }
    

    【讨论】:

      【解决方案2】:

      我刚刚为我的项目渠道实施了解决方案。

      Post build actions -> Slack notification of a Job 中有一个 Advanced 按钮可用。

      您可以提供基本 URL 和令牌以及要将通知发送到的频道名称。

      【讨论】:

      【解决方案3】:

      如果一个人对其组织的 Slack 帐户拥有足够的权限,则可以在 https://api.slack.com/apps?new_app=1 创建一个充当机器人的应用程序。

      一旦此机器人安装到工作区 [https://api.slack.com/apps/<org-id>/install-on-team?] 并被授予发布到目标频道的权限 (只需在频道中发送消息/invite @<bot-name>,它将有权发布到该频道]。但不确定如何为用户执行此操作。

      除此之外,slackSend 支持一次发送到多个频道。

      多个频道可以以逗号分号空格分隔的字符串形式提供。

      https://jenkins.io/doc/pipeline/steps/slack/

      例如,以下任何一项都有效:

      channel: "#ch-1,#ch-2,#ch-3"
      
      (OR)
      
      channel: "#ch-1;#ch-2;#ch-3"
      
      (OR)
      
      channel: "#ch-1 #ch-2 #ch-3"
      

      完整的命令可能是:

      slackSend (channel: '#ch1 #ch2 #ch3', color: '#00FF00', message: "SUCCESSFUL: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
      

      【讨论】:

        猜你喜欢
        • 2022-01-12
        • 2018-06-02
        • 2020-03-20
        • 2016-05-04
        • 1970-01-01
        • 2020-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多