airflow.contrib.hooks.slack_webhook_hook

Module Contents

class airflow.contrib.hooks.slack_webhook_hook.SlackWebhookHook(http_conn_id=None, webhook_token=None, message='', attachments=None, channel=None, username=None, icon_emoji=None, link_names=False, proxy=None, *args, **kwargs)[source]

Bases:airflow.hooks.http_hook.HttpHook

This hook allows you to post messages to Slack using incoming webhooks. Takes both Slack webhook token directly and connection that has Slack webhook token. If both supplied, Slack webhook token will be used.

Each Slack webhook token can be pre-configured to use a specific channel, username and icon. You can override these defaults in this hook.

Parameters
  • http_conn_id (str) – connection that has Slack webhook token in the extra field

  • webhook_token (str) – Slack webhook token

  • message (str) – The message you want to send on Slack

  • attachments (list) – The attachments to send on Slack. Should be a list of dictionaries representing Slack attachments.

  • channel (str) – The channel the message should be posted to

  • username (str) – The username to post to slack with

  • icon_emoji (str) – The emoji to use as icon for the user posting to Slack

  • link_names (bool) – Whether or not to find and link channel and usernames in your message

  • proxy (str) – Proxy to use to make the Slack webhook call

_get_token(self, token, http_conn_id)[source]

Given either a manually set token or a conn_id, return the webhook_token to use :param token: The manually provided token :type token: str :param http_conn_id: The conn_id provided :type http_conn_id: str :return: webhook_token (str) to use

_build_slack_message(self)[source]

Construct the Slack message. All relevant parameters are combined here to a valid Slack json message :return: Slack message (str) to send

execute(self)[source]

Remote Popen (actually execute the slack webhook call)