Octopus.Script exported 2024-11-13 by Zunair belongs to ‘Microsoft Power Automate’ category.
Posts a message to Microsoft Teams using Microsoft Power Automate webhook.
Parameters
When steps based on the template are included in a project’s deployment process, the parameters below can be set.
Webhook Url
PowerAutomatePostAdaptiveCard.HookUrl =
The specific URL created by Microsoft Power Automate using ‘When a Teams webhook request is received’ flow template. Copy and paste the full HTTP URL from Microsoft Power Automate.
Message title
PowerAutomatePostAdaptiveCard.Title = #{Octopus.Project.Name} #{Octopus.Release.Number} deployed to #{Octopus.Environment.Name}#{if Octopus.Deployment.Tenant.Id} for #{Octopus.Deployment.Tenant.Name}#{/if}
The title of the message that will be posted to your Microsoft Teams channel.
Message body
PowerAutomatePostAdaptiveCard.Body = For more information, please see [deployment details](#{if Octopus.Web.ServerUri}#{Octopus.Web.ServerUri}#{else}#{Octopus.Web.BaseUrl}#{/if}#{Octopus.Web.DeploymentLink})!
The message body of post being added to your Microsoft Teams channel.
Title Color
PowerAutomatePostAdaptiveCard.TitleColor = default
The color to use for the title of the adaptive card.
Timeout in seconds
PowerAutomatePostAdaptiveCard.Timeout = 60
The maximum timeout in seconds for each request.
Retry posting message
PowerAutomatePostAdaptiveCard.RetryPosting = False
Should retries be made? If this option is enabled, the step will attempt to retry the posting of message to teams up to the set retry count. Default: False
.
Retry Count
PowerAutomatePostAdaptiveCard.RetryCount = 1
The maximum number of times to retry the post before allowing failure. Default 1
Retry delay in milliseconds
PowerAutomatePostAdaptiveCard.RetryDelay = 100
The amount of time in milliseconds to wait between retries. Default 100
Body Color
PowerAutomatePostAdaptiveCard.BodyColor = default
The color to use for the body of the adaptive card.
Button Title
PowerAutomatePostAdaptiveCard.ButtonTitle = Adaptive Card Designer
The button title of post being added to your Microsoft Teams channel.
Button url
PowerAutomatePostAdaptiveCard.ButtonUrl = https://adaptivecards.io/designer/
The button url of post being added to your Microsoft Teams channel.
Script body
Steps based on this template will execute the following PowerShell script.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# Helper functions
function Retry-Command {
[CmdletBinding()]
Param(
[Parameter(Position=0, Mandatory=$true)]
[scriptblock]$ScriptBlock,
[Parameter(Position=1, Mandatory=$false)]
[int]$Maximum = 5,
[Parameter(Position=2, Mandatory=$false)]
[int]$Delay = 100
)
Begin {
$count = 0
}
Process {
$ex=$null
do {
$count++
try {
Write-Verbose "Attempt $count of $Maximum"
$ScriptBlock.Invoke()
return
} catch {
$ex = $_
Write-Warning "Error occurred executing command (on attempt $count of $Maximum): $($ex.Exception.Message)"
Start-Sleep -Milliseconds $Delay
}
} while ($count -lt $Maximum)
throw "Execution failed (after $count attempts): $($ex.Exception.Message)"
}
}
# End Helper functions
[int]$timeoutSec = $null
[int]$maximum = 1
[int]$delay = 100
if(-not [int]::TryParse($OctopusParameters['Timeout'], [ref]$timeoutSec)) { $timeoutSec = 60 }
if ($OctopusParameters["AutomatePostMessage.RetryPosting"] -eq $True) {
if(-not [int]::TryParse($OctopusParameters['RetryCount'], [ref]$maximum)) { $maximum = 1 }
if(-not [int]::TryParse($OctopusParameters['RetryDelay'], [ref]$delay)) { $delay = 100 }
Write-Verbose "Setting maximum retries to $maximum using a $delay ms delay"
}
# Create the payload for Power Automate
$payload = @{
type = "message" # Fixed value for message type
attachments = @(
@{
contentType = "application/vnd.microsoft.card.adaptive"
content = @{
type = "AdaptiveCard"
body = @(
@{
type = "TextBlock"
text = $OctopusParameters['Title']
weight = "bolder"
size = "medium"
color= $OctopusParameters['TitleColor']
},
@{
type = "TextBlock"
text = $OctopusParameters['Body']
wrap = $true
color= $OctopusParameters['BodyColor']
}
)
actions = @(
@{
type = "Action.OpenUrl"
title = $OctopusParameters['ButtonTitle']
url = $OctopusParameters['ButtonUrl']
}
)
"`$schema" = "http://adaptivecards.io/schemas/adaptive-card.json"
version = "1.0"
}
}
)
}
Retry-Command -Maximum $maximum -Delay $delay -ScriptBlock {
#Write-Output ($payload | ConvertTo-Json -Depth 6)
# Prepare parameters for the POST request
$invokeParameters = @{
Method = "POST"
Uri = $OctopusParameters['HookUrl']
Body = ($payload | ConvertTo-Json -Depth 6 -Compress)
ContentType = "application/json; charset=utf-8"
TimeoutSec = $timeoutSec
}
# Check for UseBasicParsing (needed for some environments)
if ((Get-Command Invoke-RestMethod).Parameters.ContainsKey("UseBasicParsing")) {
$invokeParameters.Add("UseBasicParsing", $true)
}
# Send the request to the Power Automate webhook
$Response = Invoke-RestMethod @invokeParameters
Write-Verbose "Response: $Response"
}
Provided under the Apache License version 2.0.
To use this template in Octopus Deploy, copy the JSON below and paste it into the Library → Step templates → Import dialog.
{
"Id": "707e6dae-0d6f-4121-ab8d-6961039c4162",
"Name": "Microsoft Power Automate - Post AdaptiveCard",
"Description": "Posts a message to Microsoft Teams using Microsoft Power Automate webhook.",
"Version": 1,
"ExportedAt": "2024-11-13T22:40:25.875Z",
"ActionType": "Octopus.Script",
"Author": "Zunair",
"Packages": [],
"Parameters": [
{
"Id": "5d460a15-4052-44f7-85a2-f75cdf77da03",
"Name": "PowerAutomatePostAdaptiveCard.HookUrl",
"Label": "Webhook Url",
"HelpText": "The specific URL created by Microsoft Power Automate using 'When a Teams webhook request is received' flow template. Copy and paste the full HTTP URL from Microsoft Power Automate.",
"DefaultValue": "",
"DisplaySettings": {
"Octopus.ControlType": "SingleLineText"
}
},
{
"Id": "53b1de0d-261e-464f-91e1-b7307fd5d1a2",
"Name": "PowerAutomatePostAdaptiveCard.Title",
"Label": "Message title",
"HelpText": "The title of the message that will be posted to your Microsoft Teams channel.",
"DefaultValue": "#{Octopus.Project.Name} #{Octopus.Release.Number} deployed to #{Octopus.Environment.Name}#{if Octopus.Deployment.Tenant.Id} for #{Octopus.Deployment.Tenant.Name}#{/if}",
"DisplaySettings": {
"Octopus.ControlType": "SingleLineText"
}
},
{
"Id": "14c34ec8-5e44-40c6-bf93-7d4920a78b80",
"Name": "PowerAutomatePostAdaptiveCard.Body",
"Label": "Message body",
"HelpText": "The message body of post being added to your Microsoft Teams channel.",
"DefaultValue": "For more information, please see [deployment details](#{if Octopus.Web.ServerUri}#{Octopus.Web.ServerUri}#{else}#{Octopus.Web.BaseUrl}#{/if}#{Octopus.Web.DeploymentLink})!",
"DisplaySettings": {
"Octopus.ControlType": "MultiLineText"
}
},
{
"Id": "60d65627-fa61-4203-becf-ae316488a774",
"Name": "PowerAutomatePostAdaptiveCard.TitleColor",
"Label": "Title Color",
"HelpText": "The color to use for the title of the adaptive card.",
"DefaultValue": "default",
"DisplaySettings": {
"Octopus.ControlType": "Select",
"Octopus.SelectOptions": "default|Default\ndark|Dark\nlight|Light\naccent|Accent\ngood|Good\nwarning|Warning\nattention|Attention"
}
},
{
"Id": "1491e7d2-2677-4119-a159-09715173af25",
"Name": "PowerAutomatePostAdaptiveCard.Timeout",
"Label": "Timeout in seconds",
"HelpText": "The maximum timeout in seconds for each request.",
"DefaultValue": "60",
"DisplaySettings": {
"Octopus.ControlType": "SingleLineText"
}
},
{
"Id": "0c5e5a4a-35c2-48f7-b0e3-6e2e2b14b383",
"Name": "PowerAutomatePostAdaptiveCard.RetryPosting",
"Label": "Retry posting message",
"HelpText": "Should retries be made? If this option is enabled, the step will attempt to retry the posting of message to teams up to the set retry count. Default: `False`.",
"DefaultValue": "False",
"DisplaySettings": {
"Octopus.ControlType": "Checkbox"
}
},
{
"Id": "b1d2acda-5e82-42a9-bd05-6cc4827f5974",
"Name": "PowerAutomatePostAdaptiveCard.RetryCount",
"Label": "Retry Count",
"HelpText": "The maximum number of times to retry the post before allowing failure. Default 1",
"DefaultValue": "1",
"DisplaySettings": {
"Octopus.ControlType": "SingleLineText"
}
},
{
"Id": "bc9438f7-3c74-4f2e-a5a5-4cb4c38767d9",
"Name": "PowerAutomatePostAdaptiveCard.RetryDelay",
"Label": "Retry delay in milliseconds",
"HelpText": "The amount of time in milliseconds to wait between retries. Default 100",
"DefaultValue": "100",
"DisplaySettings": {
"Octopus.ControlType": "SingleLineText"
}
},
{
"Id": "e1606576-d9af-489f-a343-916cc809c1c3",
"Name": "PowerAutomatePostAdaptiveCard.BodyColor",
"Label": "Body Color",
"HelpText": "The color to use for the body of the adaptive card.",
"DefaultValue": "default",
"DisplaySettings": {
"Octopus.ControlType": "Select",
"Octopus.SelectOptions": "default|Default\ndark|Dark\nlight|Light\naccent|Accent\ngood|Good\nwarning|Warning\nattention|Attention"
}
},
{
"Id": "6222bf83-af8b-40dd-a504-eb7ab0208981",
"Name": "PowerAutomatePostAdaptiveCard.ButtonTitle",
"Label": "Button Title",
"HelpText": "The button title of post being added to your Microsoft Teams channel.",
"DefaultValue": "Adaptive Card Designer",
"DisplaySettings": {
"Octopus.ControlType": "SingleLineText"
}
},
{
"Id": "a550bde0-e622-457c-b2b6-6a6089cf2fa8",
"Name": "PowerAutomatePostAdaptiveCard.ButtonUrl",
"Label": "Button url",
"HelpText": "The button url of post being added to your Microsoft Teams channel.",
"DefaultValue": "https://adaptivecards.io/designer/",
"DisplaySettings": {
"Octopus.ControlType": "SingleLineText"
}
}
],
"Properties": {
"Octopus.Action.Script.ScriptBody": "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12\n\n# Helper functions\nfunction Retry-Command {\n [CmdletBinding()]\n Param(\n [Parameter(Position=0, Mandatory=$true)]\n [scriptblock]$ScriptBlock,\n \n [Parameter(Position=1, Mandatory=$false)]\n [int]$Maximum = 5,\n\n [Parameter(Position=2, Mandatory=$false)]\n [int]$Delay = 100\n )\n\n Begin {\n $count = 0\n }\n\n Process {\n \t$ex=$null\n do {\n $count++\n \n try {\n Write-Verbose \"Attempt $count of $Maximum\"\n $ScriptBlock.Invoke()\n return\n } catch {\n $ex = $_\n Write-Warning \"Error occurred executing command (on attempt $count of $Maximum): $($ex.Exception.Message)\"\n Start-Sleep -Milliseconds $Delay\n }\n } while ($count -lt $Maximum)\n\n throw \"Execution failed (after $count attempts): $($ex.Exception.Message)\"\n }\n}\n# End Helper functions\n\n[int]$timeoutSec = $null\n[int]$maximum = 1\n[int]$delay = 100\n\nif(-not [int]::TryParse($OctopusParameters['Timeout'], [ref]$timeoutSec)) { $timeoutSec = 60 }\n\nif ($OctopusParameters[\"AutomatePostMessage.RetryPosting\"] -eq $True) {\n\tif(-not [int]::TryParse($OctopusParameters['RetryCount'], [ref]$maximum)) { $maximum = 1 }\n\tif(-not [int]::TryParse($OctopusParameters['RetryDelay'], [ref]$delay)) { $delay = 100 }\n\t\n Write-Verbose \"Setting maximum retries to $maximum using a $delay ms delay\"\n}\n\n# Create the payload for Power Automate\n$payload = @{\n type = \"message\" # Fixed value for message type\n attachments = @(\n @{\n contentType = \"application/vnd.microsoft.card.adaptive\"\n content = @{\n type = \"AdaptiveCard\"\n body = @(\n @{\n type = \"TextBlock\"\n text = $OctopusParameters['Title']\n weight = \"bolder\"\n size = \"medium\"\n color= $OctopusParameters['TitleColor']\n },\n @{\n type = \"TextBlock\"\n text = $OctopusParameters['Body']\n wrap = $true\n color= $OctopusParameters['BodyColor']\n }\n )\n actions = @(\n @{\n type = \"Action.OpenUrl\"\n title = $OctopusParameters['ButtonTitle']\n url = $OctopusParameters['ButtonUrl']\n }\n )\n \"`$schema\" = \"http://adaptivecards.io/schemas/adaptive-card.json\"\n version = \"1.0\"\n }\n }\n )\n}\n\nRetry-Command -Maximum $maximum -Delay $delay -ScriptBlock {\n #Write-Output ($payload | ConvertTo-Json -Depth 6)\n \n # Prepare parameters for the POST request\n $invokeParameters = @{\n Method = \"POST\"\n Uri = $OctopusParameters['HookUrl']\n Body = ($payload | ConvertTo-Json -Depth 6 -Compress)\n ContentType = \"application/json; charset=utf-8\"\n TimeoutSec = $timeoutSec\n }\n\n # Check for UseBasicParsing (needed for some environments)\n if ((Get-Command Invoke-RestMethod).Parameters.ContainsKey(\"UseBasicParsing\")) {\n $invokeParameters.Add(\"UseBasicParsing\", $true)\n }\n\n # Send the request to the Power Automate webhook\n $Response = Invoke-RestMethod @invokeParameters\n Write-Verbose \"Response: $Response\"\n}\n",
"Octopus.Action.Script.Syntax": "PowerShell",
"Octopus.Action.Script.ScriptSource": "Inline"
},
"Category": "Microsoft Power Automate",
"HistoryUrl": "https://github.com/OctopusDeploy/Library/commits/master/step-templates//opt/buildagent/work/75443764cd38076d/step-templates/microsoft-power-automate-post-adaptivecard.json",
"Website": "/step-templates/707e6dae-0d6f-4121-ab8d-6961039c4162",
"Logo": "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",
"$Meta": {
"Type": "ActionTemplate"
}
}
Page updated on Wednesday, November 13, 2024