|
import os |
|
from dotenv import load_dotenv |
|
import bleach |
|
|
|
import logging |
|
import sys |
|
import structlog |
|
|
|
load_dotenv() |
|
|
|
os.system('python src/ghm.py') |
|
|
|
def configure_logging(): |
|
structlog.configure( |
|
processors=[ |
|
structlog.processors.TimeStamper(fmt="iso"), |
|
structlog.processors.JSONRenderer() |
|
], |
|
context_class=dict, |
|
logger_factory=structlog.stdlib.LoggerFactory(), |
|
wrapper_class=structlog.stdlib.BoundLogger, |
|
cache_logger_on_first_use=True, |
|
) |
|
if not logging.getLogger().handlers: |
|
logging.basicConfig(stream=sys.stdout, level=logging.INFO) |
|
|
|
def get_env(name): |
|
val = os.getenv(name) |
|
if not val: |
|
raise RuntimeError(f"Missing required secret: {name}") |
|
return val |
|
|
|
def sanitize_html(raw): |
|
|
|
return bleach.clean(raw, tags=[], strip=True) |
|
|
|
configure_logging() |
|
logger = structlog.get_logger() |
|
|