如何在松弛状态下将消息发送到整个宽度?

时间:2020-09-17 20:31:03

标签: jenkins groovy jenkins-plugins slack slack-api

我有一个与从Jenkins向Slack发送消息有关的问题(常规脚本)。 目前,我使用SlackNotificationPlugin向Slack发送消息,并且尝试发送整个Slack宽度的行,但是,我只能使用Slack宽度的一半来代替。

我使用以下代码:

              msg = readJSON text: """
              {
                "pretext": "<placeholder>",
                "text": "<placeholder>",
                "color": "good",
                "mrkdwn_in": [
                  "pretext",
                  "text"
                ],
                "fields": [
                    {
                        "title": "A field's title",
                        "value": "This field's valueaaaaaaaaaaaa valueaaaaaaaaaaaa valueaaaaaaaaaaaa valueaaaaaaaaaaaa valueaaaaaaaaaaaa valueaaaaaaaaaaaa valueaaaaaaaaaaaa",
                        "short": false
                    },
                    {
                        "title": "A short field's title",
                        "value": "A short field's value",
                        "short": true
                    },
                    {
                        "title": "A second short field's title",
                        "value": "A second short field's value",
                        "short": true
                    }
                ],
                "blocks": [
                  {
                    "type": "section",
                    "text": {
                      "type": "mrkdwn",
                      "text": "*Alternative hotel options*"
                    }
                  }
                ]
              }
              """
            msg.pretext = pretext.inspect() 
            msg.text = text.inspect()
            slack_channel = partner_channel
            slackSend(channel: slack_channel, color: 'good', attachments: "[${msg.toString()}]")

在下面的屏幕截图中,您可以看到Packages Difference,它仅显示在页面的一半。

enter image description here

我找到了针对这种情况的解决方案,并在Slack Block Kit Builder中对其进行了测试:

{
    "blocks": [
        {
            "type": "section",
            "text": {
                "type": "mrkdwn",
                "text": "```{8}```"
            }
        }
    ]
}

https://app.slack.com/block-kit-builder/T025QN6JG#%7B%22blocks%22:%5B%7B%22type%22:%22section%22,%22text%22:%7B%22type%22:%22mrkdwn%22,%22text%22:%22%60%60%60%7B8%7D%60%60%60%22%7D%7D%5D%7D

它是Slack Block Kit Builder,我可以成功发送一条消息并使用Slack的整个空间: enter image description here

在Jenkins Slack插件(https://plugins.jenkins.io/slack/)的官方文档中,我发现对于发送块,我们可以使用以下结构:

blocks = [
    [
        "type": "section",
        "text": [
            "type": "mrkdwn",
            "text": "Hello, Assistant to the Regional Manager Dwight! *Michael Scott* wants to know where you'd like to take the Paper Company investors to dinner tonight.\n\n *Please select a restaurant:*"
        ]
    ],
    [
        "type": "divider"
    ],
    [
        "type": "section",
        "text": [
            "type": "mrkdwn",
            "text": "*Farmhouse Thai Cuisine*\n:star::star::star::star: 1528 reviews\n They do have some vegan options, like the roti and curry, plus they have a ton of salad stuff and noodles can be ordered without meat!! They have something for everyone here"
        ],
        "accessory": [
            "type": "image",
            "image_url": "https://s3-media3.fl.yelpcdn.com/bphoto/c7ed05m9lC2EmA3Aruue7A/o.jpg",
            "alt_text": "alt text for image"
        ]
    ]
]

slackSend(channel: "#general", blocks: blocks)

上述代码对我不起作用,当我使用块构造时,Slack中没有任何内容。 有人可以帮我吗?我不使用任何Bot用户,我只想将Jenkins的输出发送到Slack。

谢谢。

0 个答案:

没有答案