11import os
2- import time
32
43import sentry_sdk
54
65from codecov_cli import __version__
76
7+ _SKIP_TAG_KEYS = {"branch" , "flags" , "commit_sha" , "env_vars" }
8+
89
910def init_telem (ctx ):
1011 if ctx ["disable_telem" ]:
@@ -22,5 +23,33 @@ def init_telem(ctx):
2223 )
2324
2425
26+ def set_cli_tags (args : dict , ctx ):
27+ """Set Sentry tags from resolved CLI arguments."""
28+ for key , value in args .items ():
29+ if key in _SKIP_TAG_KEYS :
30+ continue
31+ if value is None or value in ([], (), {}):
32+ continue
33+ if isinstance (value , (list , tuple )):
34+ value = "," .join (str (v ) for v in value )
35+ elif isinstance (value , dict ):
36+ value = "," .join (
37+ f"{ k } ={ v } " for k , v in value .items () if v is not None
38+ )
39+ sentry_sdk .set_tag (f"cli.{ key } " , str (value )[:200 ])
40+
41+ token = ctx .params .get ("token" ) if hasattr (ctx , "params" ) else None
42+ sentry_sdk .set_tag ("cli.token_provided" , str (bool (token )).lower ())
43+
44+ ci_adapter = (
45+ ctx .obj .get ("ci_adapter" ) if hasattr (ctx , "obj" ) and ctx .obj else None
46+ )
47+ if ci_adapter is not None :
48+ try :
49+ sentry_sdk .set_tag ("cli.ci_adapter" , ci_adapter .get_service_name ())
50+ except Exception :
51+ pass
52+
53+
2554def close_telem ():
2655 sentry_sdk .flush ()
0 commit comments