mirror of
https://github.com/evroon/bracket.git
synced 2026-04-23 00:36:58 -04:00
Add Sentry (#96)
This commit is contained in:
@@ -24,6 +24,7 @@ pyjwt = ">=2.6.0"
|
||||
click = ">=8.1.3"
|
||||
python-multipart = ">=0.0.5"
|
||||
parameterized = ">=0.8.1"
|
||||
sentry-sdk = ">=1.13.0"
|
||||
|
||||
[dev-packages]
|
||||
mypy = ">=0.991"
|
||||
|
||||
@@ -2,10 +2,13 @@ from fastapi import FastAPI
|
||||
from starlette.middleware.cors import CORSMiddleware
|
||||
from starlette.staticfiles import StaticFiles
|
||||
|
||||
from bracket.config import Environment, config, environment
|
||||
from bracket.config import Environment, config, environment, init_sentry
|
||||
from bracket.database import database, init_db_when_empty
|
||||
from bracket.routes import auth, clubs, matches, players, rounds, teams, tournaments
|
||||
|
||||
|
||||
init_sentry()
|
||||
|
||||
app = FastAPI(
|
||||
title="Bracket API",
|
||||
docs_url="/docs",
|
||||
|
||||
@@ -2,6 +2,7 @@ import logging
|
||||
import os
|
||||
from enum import auto
|
||||
|
||||
import sentry_sdk
|
||||
from pydantic import BaseSettings, PostgresDsn
|
||||
|
||||
from bracket.utils.types import EnumAutoStr
|
||||
@@ -10,6 +11,7 @@ from bracket.utils.types import EnumAutoStr
|
||||
class Environment(EnumAutoStr):
|
||||
PRODUCTION = auto()
|
||||
DEVELOPMENT = auto()
|
||||
DEMO = auto()
|
||||
CI = auto()
|
||||
|
||||
def get_env_filepath(self) -> str:
|
||||
@@ -17,6 +19,7 @@ class Environment(EnumAutoStr):
|
||||
Environment.PRODUCTION: 'prod.env',
|
||||
Environment.DEVELOPMENT: 'dev.env',
|
||||
Environment.CI: 'ci.env',
|
||||
Environment.DEMO: 'demo.env',
|
||||
}[self]
|
||||
|
||||
def get_log_level(self) -> int:
|
||||
@@ -24,6 +27,7 @@ class Environment(EnumAutoStr):
|
||||
Environment.CI: logging.WARNING,
|
||||
Environment.DEVELOPMENT: logging.DEBUG,
|
||||
Environment.PRODUCTION: logging.INFO,
|
||||
Environment.DEMO: logging.INFO,
|
||||
}[self]
|
||||
|
||||
|
||||
@@ -34,7 +38,17 @@ class Config(BaseSettings):
|
||||
cors_origin_regex: str = ''
|
||||
admin_email: str | None = None
|
||||
admin_password: str | None = None
|
||||
sentry_dsn: str | None = None
|
||||
|
||||
|
||||
environment = Environment(os.getenv('ENVIRONMENT', 'DEVELOPMENT'))
|
||||
config = Config(_env_file=environment.get_env_filepath())
|
||||
|
||||
|
||||
def init_sentry() -> None:
|
||||
if config.sentry_dsn:
|
||||
sentry_sdk.init(
|
||||
dsn=config.sentry_dsn,
|
||||
environment=str(environment.value),
|
||||
with_locals=False,
|
||||
)
|
||||
|
||||
@@ -3,6 +3,6 @@ set -evo pipefail
|
||||
|
||||
black .
|
||||
dmypy run -- --follow-imports=normal --junit-xml= .
|
||||
ENVIRONMENT=CI pytest --cov --cov-report=xml .
|
||||
SQLALCHEMY_SILENCE_UBER_WARNING=1 ENVIRONMENT=CI pytest --cov --cov-report=xml .
|
||||
pylint alembic bracket tests
|
||||
isort .
|
||||
|
||||
Reference in New Issue
Block a user