Files
versions-package-tools/get-new-tool-versions/send-slack-notification.ps1
T

63 lines
1.5 KiB
PowerShell
Raw Normal View History

2020-07-02 17:05:38 +03:00
<#
.SYNOPSIS
Sending messages using Incoming Webhooks
.PARAMETER Url
Required parameter. Incoming Webhook URL to post a message
.PARAMETER ToolName
Required parameter. The name of tool
.PARAMETER ToolVersion
Required parameter. Specifies the version of tool
.PARAMETER PipelineUrl
Required parameter. The pipeline URL
.PARAMETER ImageUrl
Optional parameter. The image URL
#>
param(
[Parameter(Mandatory)]
[ValidateNotNullOrEmpty()]
[System.Uri]$Url,
[Parameter(Mandatory)]
[ValidateNotNullOrEmpty()]
[System.String]$ToolName,
[Parameter(Mandatory)]
[ValidateNotNullOrEmpty()]
[System.String]$ToolVersion,
[System.String]$PipelineUrl,
[System.String]$ImageUrl = 'https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png'
)
# Import helpers module
2020-07-03 13:53:05 +03:00
Import-Module $PSScriptRoot/helpers.psm1 -DisableNameChecking
2020-07-02 17:05:38 +03:00
# Create JSON body
2020-12-09 11:48:13 +03:00
$text = "The following versions of '$toolName' are available to upload: $toolVersion"
2020-12-16 11:46:22 +03:00
if (-not ([string]::IsNullOrWhiteSpace($PipelineUrl))) {
2020-12-09 11:48:13 +03:00
$text += "\nLink to the pipeline: $pipelineUrl"
}
2020-07-02 17:05:38 +03:00
$jsonBodyMessage = @"
{
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "$text"
},
"accessory": {
"type": "image",
"image_url": "$imageUrl",
"alt_text": "$toolName"
}
}
]
}
"@
# Send Slack message
$null = Send-SlackPostMessageIncomingWebHook -Uri $url -Body $jsonBodyMessage