First commit

This commit is contained in:
2025-09-03 11:20:46 +09:00
commit 86f6a6f1fe
20 changed files with 873 additions and 0 deletions

0
src/setting/__init__.py Normal file
View File

29
src/setting/config.py Normal file
View File

@@ -0,0 +1,29 @@
import os
import sys
from dataclasses import dataclass
def env(name: str) -> str:
v = os.getenv(name)
if not v:
print(f"[ERR] env {name} is required.", file=sys.stderr)
sys.exit(1)
return v.strip()
@dataclass(frozen=True)
class AppConfig:
grafana_url: str
grafana_api_key: str
grafana_dashboard_uid: str
mattermost_webhook: str
@staticmethod
def load() -> "AppConfig":
url = env("GRAFANA_URL").rstrip("/")
return AppConfig(
grafana_url=url,
grafana_api_key=env("GRAFANA_API_KEY"),
grafana_dashboard_uid=env("GRAFANA_DASHBOARD_UID"),
mattermost_webhook=env("MATTERMOST_WEBHOOK"),
)