Skip to content

Easily construct and send formatted emails and Slack alerts.

Notifications You must be signed in to change notification settings

djkelleher/alert-msgs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Easily construct and send formatted emails and Slack alerts.

Install

pip install alert_msgs

If using Slack as an alert destination, you will need to set up a Slack App and get a bot token configured with OAuth permissions.

  1. Go to Slack Apps. Click Create New App -> From Scratch (give it a name, select your workspace)
  2. Navigate to the OAuth & Permissions on the left sidebar and scroll down to the Bot Token Scopes section. Add chat:write and file:write OAuth scopes.
  3. Scroll up to the top of the OAuth & Permissions page and click Install App to Workspace.
  4. Copy the Bot User OAuth Token from the OAuth & Permissions page. This is the value that should be used for the bot_token parameter of Slack config.
  5. In Slack, go to your channel and click the down arrow next to your channel name at the top. Click Integrations -> Add apps -> select the app you just made.

Usage

send_alert is the high-level/easiest way to send alerts.
Alerts are composed of one or more messages, where each message is composed of one or more components.
Alerts can be sent to one or more Slack and/or Email destinations. See destinations for configuration.

Examples

from alert_msgs import Email, Slack, ContentType, FontSize, Map, Text, Table, send_alert, send_slack_message, send_email
from uuid import uuid4
import random

components = [
    Text(
        "Important things have happened.",
        size=FontSize.LARGE,
        color=ContentType.IMPORTANT,
    ),
    Map({"Field1": "Value1", "Field2": "Value2", "Field3": "Value3"}),
    Table(
        rows=[
            {
                "Process": "thing-1",
                "Status": 0,
                "Finished": True,
            },
            {
                "Process": "thing-2",
                "Status": 1,
                "Finished": False,
            }
        ],
        caption="Process Status",
    ),
]

send_to = [
    Email(sender_addr="me@gmail.com", password="myemailpass", receiver_addr=["someone@gmail.com","someone2@gmail.com"]), 
    Slack(bot_token="xoxb-34248928439763-6634233945735-KbePKXfstIRv6YN2tW5UF8tS", channel="my-channel")
]
send_alert(components, subject="Test Alert",  send_to=send_to)

About

Easily construct and send formatted emails and Slack alerts.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published