From db7d2cd3a8e79e3714dbd92563635a188ac43e11 Mon Sep 17 00:00:00 2001 From: kenzoengineer Date: Mon, 8 Sep 2025 11:30:26 -0700 Subject: [PATCH] add logging for dsn fetch --- src/sentry_config.py | 46 ++++++++++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/src/sentry_config.py b/src/sentry_config.py index 28d0ca4..30678da 100644 --- a/src/sentry_config.py +++ b/src/sentry_config.py @@ -1,11 +1,17 @@ from __future__ import annotations import base64 +import logging +import os from configparser import ConfigParser from functools import lru_cache import requests +LOGGING_LEVEL = os.environ.get("LOGGING_LEVEL", logging.INFO) +logger = logging.getLogger(__name__) +logger.setLevel(LOGGING_LEVEL) + SENTRY_CONFIG_API_URL = ( "https://api.github.com/repos/{owner}/.sentry/contents/sentry_config.ini" ) @@ -17,20 +23,26 @@ def fetch_dsn_for_github_org(org: str, token: str) -> str: "Accept": "application/vnd.github+json", "Authorization": f"token {token}", } - api_url = SENTRY_CONFIG_API_URL.replace("{owner}", org) - # - Get meta about sentry_config.ini file - resp = requests.get(api_url, headers=headers) - resp.raise_for_status() - meta = resp.json() - - if meta["type"] != "file": - # XXX: custom error - raise Exception(meta["type"]) - - assert meta["encoding"] == "base64", meta["encoding"] - file_contents = base64.b64decode(meta["content"]).decode() - - # - Read ini file and assertions - cp = ConfigParser() - cp.read_string(file_contents) - return cp.get("sentry-github-actions-app", "dsn") + try: + api_url = SENTRY_CONFIG_API_URL.replace("{owner}", org) + + # - Get meta about sentry_config.ini file + resp = requests.get(api_url, headers=headers) + resp.raise_for_status() + meta = resp.json() + + if meta["type"] != "file": + # XXX: custom error + raise Exception(meta["type"]) + + assert meta["encoding"] == "base64", meta["encoding"] + file_contents = base64.b64decode(meta["content"]).decode() + + # - Read ini file and assertions + cp = ConfigParser() + cp.read_string(file_contents) + return cp.get("sentry-github-actions-app", "dsn") + + except Exception as e: + logger.exception(e) + raise e