Skip to main content

A simple notification library for Google Cloud projects. Sends alerts via Email and Google Chat.

Project description

GCP Notifier

A simple notification library for Google Cloud projects. Send alerts via Email and Google Chat with a single function call. Designed to be imported and used as a Python module in your own code.

Features

  • Send notifications via Email and Google Chat (Webhook)
  • Unified, simple Python API: notify(subject, body, channels)
  • Tenacity-compatible error callback: notify_on_failure
  • Secrets are securely loaded from Google Secret Manager

Installation

Install from PyPI (recommended):

pip install gcp-notifier

Or, to test the latest version from TestPyPI:

pip install -i https://test.pypi.org/simple/ gcp-notifier

Or, for local development:

pip install .

Or add to your requirements.txt (recommended for PyPI):

gcp-notifier

For development versions from GitHub (not recommended for production):

gcp_notifier @ git+https://github.com/marcellusmontilla/gcp_notifier.git

Quick Start

  1. Install the package (see Installation above).

  2. The account (personal or service) running this code must have the 'Secret Manager Secret Accessor' role in your GCP project.

  3. The required secrets must be in the same GCP project where your Python script or notebook is running.

  4. Add your required secrets to Google Secret Manager in your GCP project:

    • GCHAT_WEBHOOK_URL (for Google Chat)
    • EMAIL_SENDER (sender email address for Email)
    • EMAIL_PASSWORD (password or app password for sender)
    • EMAIL_RECIPIENTS (comma-separated list of recipient email addresses)
  5. Import and use notify in your code as shown below.

Usage

Import and use in your Python code:

from gcp_notifier import notify, notify_on_failure

# Send a notification (choose channels: "email", "gchat", or both)
notify(
  subject="Alert Subject",
  body="Alert body text",
  channels=["email", "gchat"]  # or ["email"] or ["gchat"]
)

# Use as tenacity retry_error_callback
from tenacity import retry, stop_after_attempt

@retry(stop=stop_after_attempt(3), retry_error_callback=notify_on_failure)
def always_fails():
  # This function will always fail, triggering notify_on_failure after retries
  raise ValueError("This is a test error for notification.")

always_fails()

Building and Publishing

This project uses a modern Python packaging workflow with pyproject.toml.

To build the package:

python -m pip install --upgrade build
python -m build

To check and upload to PyPI:

python -m pip install --upgrade twine
twine check dist/*
twine upload dist/*

See Python Packaging User Guide for more details.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gcp_notifier-0.1.3.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gcp_notifier-0.1.3-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

Details for the file gcp_notifier-0.1.3.tar.gz.

File metadata

  • Download URL: gcp_notifier-0.1.3.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for gcp_notifier-0.1.3.tar.gz
Algorithm Hash digest
SHA256 80d996f4f9e465dad3b57b2c1f4dfb5d6d520441aff27364be4316635da6a00e
MD5 e6968efee3207d94b8c9f1a9cf10459d
BLAKE2b-256 0254fa870fbcfc3c66fe0cd93b778253b8e1cd484373775edcd8c94dce659c2e

See more details on using hashes here.

File details

Details for the file gcp_notifier-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: gcp_notifier-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 5.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for gcp_notifier-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 1eff495898e0fcf0c5c0b2de397462e67e430180fbf2a330814dea6657ec7f35
MD5 9d01d1d68624b7ccde6d011d6aa9559b
BLAKE2b-256 70d4efa700fcccbfdfcdb1aa93a700c64d45d7b30e3ab12a1a5b1cdfa703f03a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page