All Projects → atc0005 → go-teams-notify

atc0005 / go-teams-notify

Licence: MIT License
A package to send messages to a Microsoft Teams channel

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to go-teams-notify

pr-reviews-reminder-action
A GitHub Action to send Slack/Teams notification for Pull Request that are waiting for reviewers.
Stars: ✭ 18 (-37.93%)
Mutual labels:  webhook, teams, microsoft-teams
teams-call
Shell script to detect when you're in a Microsoft Teams Call. Supports Linux and macOS.
Stars: ✭ 23 (-20.69%)
Mutual labels:  teams, microsoft-teams
osTicket-Microsoft-Teams-plugin
osTicket webhook integration to send notifications to MS Teams when new ticket is issued or created
Stars: ✭ 19 (-34.48%)
Mutual labels:  teams, microsoft-teams
Serilog.Sinks.MicrosoftTeams.Alternative
Serilog.Sinks.MicrosoftTeams.Alternative is a library to save logging information from Serilog to Microsoft Teams.
Stars: ✭ 21 (-27.59%)
Mutual labels:  teams, microsoft-teams
linux-teams
An unofficial Microsoft Teams application for Linux
Stars: ✭ 19 (-34.48%)
Mutual labels:  teams, microsoft-teams
script-samples
A sample gallery of scripts to manage all things Microsoft 365.
Stars: ✭ 56 (+93.1%)
Mutual labels:  teams, microsoft-teams
MsftTeams
Module for Posting messages to MSTeams via Webhook
Stars: ✭ 35 (+20.69%)
Mutual labels:  webhook, microsoft-teams
teams-api
Unofficial Microsoft Teams Library
Stars: ✭ 92 (+217.24%)
Mutual labels:  teams, microsoft-teams
DiscordWebhook
Discord webhook library in C#
Stars: ✭ 22 (-24.14%)
Mutual labels:  webhook
tesoro
Kapitan Admission Controller Webhook
Stars: ✭ 32 (+10.34%)
Mutual labels:  webhook
GitHub-Webhook-Bot
It is a Simple Telegram Bot, which will listen to GitHub Webhook and inform via Telegram
Stars: ✭ 33 (+13.79%)
Mutual labels:  webhook
zoom-slack-status-updater
Update your Slack status automatically when you join a Zoom meeting.
Stars: ✭ 23 (-20.69%)
Mutual labels:  webhook
Flask-Shell2HTTP
Execute shell commands via HTTP server (via flask's endpoints).
Stars: ✭ 93 (+220.69%)
Mutual labels:  webhook
imageswap-webhook
Image Swap Mutating Admission Webhook for Kubernetes
Stars: ✭ 72 (+148.28%)
Mutual labels:  webhook
iris
Watch on Kubernetes events, filter and send them as standard wehbook to any system
Stars: ✭ 57 (+96.55%)
Mutual labels:  webhook
Limg
An image hosting service powered by Laravel
Stars: ✭ 41 (+41.38%)
Mutual labels:  webhook
facebook-send-api-emulator
Facebook Messenger Emulator & Facebook Send API Emulator functionality allowing you to test web hooks on developer's machine.
Stars: ✭ 24 (-17.24%)
Mutual labels:  webhook
TeamGames
Sourcemod plugin providing team based games for prisoners and some useful things for wardens.
Stars: ✭ 16 (-44.83%)
Mutual labels:  teams
teamcity-commit-hooks
Plugin for TeamCity simplifying installation of webhooks for repositories in GitHub and GitHub Enterprise.
Stars: ✭ 24 (-17.24%)
Mutual labels:  webhook
tilt-pitch
Simple replacement for the Tilt Hydrometer mobile apps and TiltPi with lots of features
Stars: ✭ 32 (+10.34%)
Mutual labels:  webhook

goteamsnotify

A package to send messages to a Microsoft Teams channel.

Latest release Go Reference License Validate Codebase Validate Docs Lint and Build using Makefile Quick Validation

Table of contents

Project home

See our GitHub repo for the latest code, to file an issue or submit improvements for review and potential inclusion into the project.

Overview

The goteamsnotify package (aka, go-teams-notify) allows sending messages to a Microsoft Teams channel. These messages can be composed of legacy MessageCard or Adaptive Card card formats.

Simple messages can be created by specifying only a title and a text body. More complex messages may be composed of multiple sections (MessageCard) or containers (Adaptive Card), key/value pairs (aka, Facts) and externally hosted images. See the Features list for more information.

NOTE: Adaptive Card support is currently limited. The goal is to expand this support in future releases to include additional features supported by Microsoft Teams.

Features

  • Submit simple or complex messages to Microsoft Teams
    • simple messages consist of only a title and a text body (one or more strings)
    • complex messages may consist of multiple sections (MessageCard), containers (Adaptive Card) key/value pairs (aka, Facts) and externally hosted images
  • Support for Actions, allowing users to take quick actions within Microsoft Teams
  • Support for user mentions (Adaptive Card format)
  • Configurable validation of webhook URLs
    • enabled by default, attempts to match most common known webhook URL patterns
    • option to disable validation entirely
    • option to use custom validation patterns
  • Configurable validation of MessageCard type
    • default assertion that bare-minimum required fields are present
    • support for providing a custom validation function to override default validation behavior
  • Configurable validation of Adaptive Card type
    • default assertion that bare-minimum required fields are present
    • support for providing a custom validation function to override default validation behavior
  • Configurable timeouts
  • Configurable retry support

Project Status

In short:

  • The upstream project is no longer being actively developed or maintained.
  • This fork is now a standalone project, accepting contributions, bug reports and feature requests.
  • Others have also taken an interest in maintaining their own forks of the original project. See those forks for other ideas/changes that you may find useful.

For more details, see the Releases section or our Changelog.

Supported Releases

Series Example Status
v1.x.x v1.3.1 Not Supported (EOL)
v2.x.x v2.6.0 Supported
v3.x.x v3.0.0-alpha.1 TBD

The current plan is to continue extending the v2 branch with new functionality while retaining backwards compatibility. Any breakage in compatibility for the v2 series is considered a bug (please report it).

Long-term, the goal is to learn from missteps made in current releases and correct as many as possible for a future v3 series.

Changelog

See the CHANGELOG.md file for the changes associated with each release of this application. Changes that have been merged to master, but not yet an official release may also be noted in the file under the Unreleased section. A helpful link to the Git commit history since the last official release is also provided for further review.

Usage

Add this project as a dependency

See the Examples section for more details.

Webhook URLs

Expected format

Valid webhook URLs for Microsoft Teams use one of several (confirmed) FQDNs patterns:

  • outlook.office.com
  • outlook.office365.com
  • *.webhook.office.com
    • e.g., example.webhook.office.com

Using a webhook URL with any of these FQDN patterns appears to give identical results.

Here are complete, equivalent example webhook URLs from Microsoft's documentation using the FQDNs above:

All of these patterns when provided to this library should pass the default validation applied. See the example further down for the option of disabling webhook URL validation entirely.

How to create a webhook URL (Connector)

  1. Open Microsoft Teams
  2. Navigate to the channel where you wish to receive incoming messages from this application
  3. Select next to the channel name and then choose Connectors.
  4. Scroll through the list of Connectors to Incoming Webhook, and choose Add.
  5. Enter a name for the webhook, upload an image to associate with data from the webhook, and choose Create.
  6. Copy the webhook URL to the clipboard and save it. You'll need the webhook URL for sending information to Microsoft Teams.
    • NOTE: While you can create another easily enough, you should treat this webhook URL as sensitive information as anyone with this unique URL is able to send messages (without authentication) into the associated channel.
  7. Choose Done.

Credit: docs.microsoft.com, gist comment from shadabacc3934

Examples

Basic

This is an example of a simple client application which uses this library.

  • Adaptive Card
  • MessageCard

User Mention

These examples illustrates the use of one or more user mentions. This feature is not available in the legacy MessageCard card format.

Set custom user agent

This example illustrates setting a custom user agent.

Add an Action

This example illustrates adding an OpenUri (MessageCard) or OpenUrl Action. When used, this action triggers opening a URL in a separate browser or application.

Disable webhook URL prefix validation

This example disables the validation webhook URLs, including the validation of known prefixes so that custom/private webhook URL endpoints can be used (e.g., testing purposes).

Enable custom patterns' validation

This example demonstrates how to enable custom validation patterns for webhook URLs.

Used by

See the Known importers lists below for a dynamically updated list of projects using either this library or the original project.

References

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].