|
|
|
<#
|
|
|
|
.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
|
|
|
|
Optional parameter. Specifies the version of tool
|
|
|
|
.PARAMETER PipelineUrl
|
|
|
|
Optional parameter. The pipeline URL
|
|
|
|
.PARAMETER ImageUrl
|
|
|
|
Optional parameter. The image URL
|
|
|
|
.PARAMETER Text
|
|
|
|
Optional parameter. The message to post
|
|
|
|
.PARAMETER AddToToolsetFlag
|
|
|
|
Optional parameter. Flag to alternate message text for adding new version of a tool to toolset notification
|
|
|
|
#>
|
|
|
|
|
|
|
|
param(
|
|
|
|
[Parameter(Mandatory)]
|
|
|
|
[ValidateNotNullOrEmpty()]
|
|
|
|
[System.Uri]$Url,
|
|
|
|
|
|
|
|
[Parameter(Mandatory)]
|
|
|
|
[ValidateNotNullOrEmpty()]
|
|
|
|
[System.String]$ToolName,
|
|
|
|
|
|
|
|
[System.String]$ToolVersion,
|
|
|
|
[System.String]$PipelineUrl,
|
|
|
|
[System.String]$ImageUrl = 'https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png',
|
|
|
|
[System.String]$Text,
|
|
|
|
[Switch]$AddToToolsetFlag
|
|
|
|
)
|
|
|
|
|
|
|
|
# Import helpers module
|
|
|
|
Import-Module $PSScriptRoot/helpers.psm1 -DisableNameChecking
|
|
|
|
|
|
|
|
# Create JSON body
|
|
|
|
if ([string]::IsNullOrWhiteSpace($Text)) {
|
|
|
|
if ($AddToToolsetFlag) {
|
|
|
|
$Text = "The following versions of '$toolName' are available, consider adding them to toolset: $toolVersion"
|
|
|
|
} else {
|
|
|
|
$Text = "The following versions of '$toolName' are available to upload: $toolVersion"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (-not ([string]::IsNullOrWhiteSpace($PipelineUrl))) {
|
|
|
|
$Text += "\nLink to the pipeline: $pipelineUrl"
|
|
|
|
}
|
|
|
|
|
|
|
|
$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
|