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.4.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.4-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for gcp_notifier-0.1.4.tar.gz
Algorithm Hash digest
SHA256 c95fac460e3b86299c275866d78069396bc07c7757557d36cbf4576a1be4e378
MD5 3d55bcde4cb99857e24cde80d9915804
BLAKE2b-256 72d9e43c34130f98701b5bcb6350ee47e7db2f6c3b7a9a55333fbcf7defcb0f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for gcp_notifier-0.1.4.tar.gz:

Publisher: python-publish.yml on marcellusmontilla/gcp_notifier

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: gcp_notifier-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 5.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for gcp_notifier-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c3313e55391a7d20384e96e69a8628c7cfec4e1d5d1a30b1bc8465cb86eec97b
MD5 2cb5d87d648e77253f1f6ff67733afe2
BLAKE2b-256 fd462cd37391a3b8209e013e486073e1f5f0936fd40f4ba7ba6fd795567fa6e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for gcp_notifier-0.1.4-py3-none-any.whl:

Publisher: python-publish.yml on marcellusmontilla/gcp_notifier

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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