Sends an AdaptiveCard notification to an MS Teams Incoming Webhook from a GitHub Action Workflow
This action requires a secret to be set up with your Teams Incoming Webhook URL named MS_TEAMS_WEBHOOK_URL
(official docs for creating secrets in your repo)
github-token
- required: true
- type: string
- description: GitHub Token for API operations (see examples for how to reference)
- example:
github-token: ${{ github.token }}
webhook-url
- required: true
- type: string
- description: MS Teams Incoming Webhook URL
- example:
webhook-url: ${{ secrets.MS_TEAMS_WEBHOOK_URL }}
title
- required: true
- type: string
- description: Message title or heading
- example:
title: "Test Message Heading"
message
- required: false
- type: string
- default:
""
- description: Message to be sent (not used for workflow status notifications)
- example:
message: "This is some test message content for a simple notification"
color
- required: false
- type: string
- default:
"default"
- description: Background color of the heading in the message - accepts
default
,info
,success
,failure
,warning
as values - example:
color: "info"
deploy-card
- required: false
- type: boolean
- default:
false
- description: Sends a workflow notification that is built dynamically from commit and repo info
- example:
deploy-card: true
timezone
- required: false
- type: string
- default:
"America/New_York"
- description: Timezone to use for timestamps in messages
- example:
timezone: "Europe/Rome"
This action was built with the intention of sending workflow status notifications but also supports a simple message style
The following sends a simple notification with a title and message
- name: Send simple notification
uses: mikesprague/teams-incoming-webhook-action@v1
with:
github-token: ${{ github.token }}
webhook-url: ${{ secrets.MS_TEAMS_WEBHOOK_URL }}
title: "Notification Test"
message: "This is an example of a simple notification with a title and a body"
The following examples show how to send notifications based on your workflow status
Include as first step in workflow to notify workflow run has started
- name: Deploy Started Notification
uses: mikesprague/teams-incoming-webhook-action@v1
with:
github-token: ${{ github.token }}
webhook-url: ${{ secrets.MS_TEAMS_WEBHOOK_URL }}
deploy-card: true
title: "Deployment Started"
color: "info"
Include anywhere in steps to notify workflow run has been cancelled
- name: Cancelled Notification
if: ${{ cancelled() }}
uses: mikesprague/teams-incoming-webhook-action@v1
with:
github-token: ${{ github.token }}
webhook-url: ${{ secrets.MS_TEAMS_WEBHOOK_URL }}
deploy-card: true
title: "Deployment Cancelled"
color: "warning"
Include anywhere in steps to notify when a workflow run fails
- name: Failure Notification
if: ${{ failure() }}
uses: mikesprague/teams-incoming-webhook-action@v1
with:
github-token: ${{ github.token }}
webhook-url: ${{ secrets.MS_TEAMS_WEBHOOK_URL }}
deploy-card: true
title: "Deployment Failed"
color: "failure"
Include anywhere in steps to notify when workflow run is successful
- name: Success Notification
if: ${{ success() }}
uses: mikesprague/teams-incoming-webhook-action@v1
with:
github-token: ${{ github.token }}
webhook-url: ${{ secrets.MS_TEAMS_WEBHOOK_URL }}
deploy-card: true
title: "Deployment Successful"
color: "success"
Ideas for future enhancements and improvements
- Support custom payloads/messages