Skip to content

Github action to send comprehensive raport to Microsoft Teams

Notifications You must be signed in to change notification settings

smlgbl/notify-microsoft-teams

 
 

Repository files navigation

Notify Microsoft Teams

CI GitHub

Teams notify action inspired by git:homoluctus/slatify (for Slack).

This is Microsoft Teams Notification for GitHub Actions.
Generated from actions/javascript-template.

ToC

Feature

  • Notify the result of GitHub Actions
  • Support all job statuses (reference: job-context)
  • Logs relevant jobs and steps along with their output in case of failure
  • Provides flexible interface to overwrite any part of the message
  • Allows sending raw json-formatted messages directly from action definition

Usage

First of all, you need to set GitHub secrets for MSTEAMS_WEBHOOK that is Incoming Webhook URL.

You can customize the following parameters:

with parameter required/optional default description
webhook_url optional $MSTEAMS_WEBHOOK Microsoft Teams Incoming Webhooks URL
Please specify this key or MSTEAMS_WEBHOOK environment variable
job optional {}} JSON parsed job context
steps optional {} JSON parsed steps context
needs optional {} JSON parsed needs context
dry_run optional False Do not actually send the message
raw optional '' JSON object to send to Microsoft Teams
run_id optional '' Workflow run ID to create a direct link - unfortunately it's not included in the environment
overwrite optional '' JSON like object to overwrite default message (executed with eval)

Please refer action.yml for more details.

Examples

name: Check notification

on:
  push: {}
  release: {}

jobs:
  success:
    name: One with everything
    runs-on: ubuntu-18.04
    steps:
      - uses: actions/checkout@master
      - name: Microsoft Teams Notification
        uses: skitionek/notify-microsoft-teams@master
        if: always()
        with:
          webhook_url: ${{ secrets.MSTEAMS_WEBHOOK }}
          needs: ${{ toJson(needs) }}
          job: ${{ toJson(job) }}
          steps: ${{ toJson(steps) }}
          run_id: ${{ github.run_id }}
          dry_run: True


  without_optional_params:
    name: One with little info
    runs-on: ubuntu-18.04
    steps:
      - uses: actions/checkout@master
      - name: Microsoft Teams Notification
        uses: skitionek/notify-microsoft-teams@master
        if: always()
        with:
          webhook_url: ${{ secrets.MSTEAMS_WEBHOOK }}

  with_overwrite:
    name: One with overwrite
    runs-on: ubuntu-18.04
    steps:
      - uses: actions/checkout@master
      - name: Microsoft Teams Notification
        uses: skitionek/notify-microsoft-teams@master
        if: always()
        with:
          webhook_url: ${{ secrets.MSTEAMS_WEBHOOK }}
          overwrite: "{title: `Overwrote title for ${repository.name}`}"

  with_raw:
    name: One with raw data
    runs-on: ubuntu-18.04
    steps:
      - uses: actions/checkout@master
      - name: Microsoft Teams Notification
        uses: skitionek/notify-microsoft-teams@master
        if: always()
        with:
          webhook_url: ${{ secrets.MSTEAMS_WEBHOOK }}
          raw: >-
            {
              "@type": "MessageCard",
              "@context": "http://schema.org/extensions",
              "title": "No ${variables} available in here"
            }

  if_failure:
    name: Only on failure
    runs-on: ubuntu-18.04
    steps:
      - uses: actions/checkout@master
      - name: Microsoft Teams Notification
        uses: skitionek/notify-microsoft-teams@master
        if: failure()
        with:
          webhook_url: ${{ secrets.MSTEAMS_WEBHOOK }}

Microsoft Teams UI

Notification Preview 1 Notification Preview 2 Notification Preview 3 Notification Preview 4 Notification Preview 5 Notification Preview 6

Contribution

You are welcome to contribute in any form. I would gladly improve this package.

LICENSE

The MIT License (MIT)

About

Github action to send comprehensive raport to Microsoft Teams

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%