From 67dff4dc6e0fd6f6cad7b589672c15cc567f6cb9 Mon Sep 17 00:00:00 2001 From: "sentry[bot]" <39604003+sentry[bot]@users.noreply.github.com> Date: Mon, 3 Aug 2026 14:37:50 +0000 Subject: [PATCH] fix: prevent sentry-sdk TypeError with version check --- codecov_cli/opentelemetry.py | 22 ++++++++++++++++++++++ pyproject.toml | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/codecov_cli/opentelemetry.py b/codecov_cli/opentelemetry.py index b902a433..b25acec2 100644 --- a/codecov_cli/opentelemetry.py +++ b/codecov_cli/opentelemetry.py @@ -1,3 +1,4 @@ +import logging import os import random @@ -5,6 +6,20 @@ from codecov_cli import __version__ +logger = logging.getLogger(__name__) + +_SENTRY_SDK_MIN_VERSION = (2, 0, 0) + + +def _sentry_sdk_version_ok() -> bool: + """Return True if the installed sentry-sdk meets the minimum required version.""" + try: + version_str = sentry_sdk.VERSION + parts = tuple(int(x) for x in version_str.split(".")[:3]) + return parts >= _SENTRY_SDK_MIN_VERSION + except Exception: + return False + _SAMPLED_MESSAGES = [ "Token required", "No JUnit XML reports found", @@ -43,6 +58,13 @@ def init_telem(ctx): return if os.getenv("CODECOV_ENV", "production") == "test": return + if not _sentry_sdk_version_ok(): + logger.warning( + "sentry-sdk version %s is too old (requires >= %s); telemetry disabled.", + sentry_sdk.VERSION, + ".".join(str(v) for v in _SENTRY_SDK_MIN_VERSION), + ) + return sentry_sdk.init( dsn="https://0bea75c61745c221a6ef1ac1709b1f4d@o26192.ingest.us.sentry.io/4508615876083713", diff --git a/pyproject.toml b/pyproject.toml index bd743fd2..eb100f42 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,7 +16,7 @@ dependencies = [ "ijson==3.*", "PyYAML==6.*", "requests>=2.25.0", - "sentry-sdk==2.*", + "sentry-sdk>=2.0.0,<3.0.0", "test-results-parser==0.6.1", ]