Coverage for src / sentry_tool / cli.py: 86.36%

22 statements  

« prev     ^ index     » next       coverage.py v7.13.2, created at 2026-02-07 20:19 -0500

1from typing import Annotated 

2 

3import typer 

4 

5from sentry_tool.commands import config, events, issues, projects 

6from sentry_tool.monitoring import setup_logging, setup_sentry 

7from sentry_tool.utils import set_active_profile, set_active_project 

8 

9app = typer.Typer( 

10 help="Sentry Tool - Query and manage Sentry issues.", 

11 no_args_is_help=True, 

12) 

13 

14app.add_typer(config.config_app, name="config") 

15 

16app.command("list")(issues.list_issues) 

17app.command("show")(issues.show_issue) 

18app.command("event")(events.show_event) 

19app.command("events")(events.list_events) 

20app.command("tags")(events.show_tags) 

21app.command("list-projects")(projects.list_projects) 

22app.command("open")(projects.open_sentry) 

23 

24 

25@app.callback() 

26def callback( 

27 profile: Annotated[ 

28 str | None, 

29 typer.Option("--profile", "-P", help="Use named profile from config"), 

30 ] = None, 

31 project: Annotated[ 

32 str | None, 

33 typer.Option("--project", "-p", help="Override project slug from profile"), 

34 ] = None, 

35) -> None: 

36 set_active_profile(profile) 

37 set_active_project(project) 

38 

39 

40def cli() -> None: 

41 setup_logging() 

42 setup_sentry(environment="local") 

43 app()