diff --git a/backend/src/ref_backend/builder.py b/backend/src/ref_backend/builder.py index 8333baa3..28dd723a 100644 --- a/backend/src/ref_backend/builder.py +++ b/backend/src/ref_backend/builder.py @@ -95,6 +95,7 @@ def build_app(settings: Settings, ref_config: Config, database: Database) -> Fas if settings.SENTRY_DSN and settings.ENVIRONMENT != "local": sentry_sdk.init( dsn=str(settings.SENTRY_DSN), + release=settings.GIT_COMMIT, enable_tracing=True, ) diff --git a/backend/tests/test_builder.py b/backend/tests/test_builder.py new file mode 100644 index 00000000..e8e3d6bf --- /dev/null +++ b/backend/tests/test_builder.py @@ -0,0 +1,20 @@ +from ref_backend import builder +from ref_backend.api import deps +from ref_backend.testing import test_ref_config, test_settings + + +def test_sentry_release_is_the_git_commit(monkeypatch): + calls = [] + monkeypatch.setattr(builder.sentry_sdk, "init", lambda **kwargs: calls.append(kwargs)) + settings = test_settings().model_copy( + update={ + "SENTRY_DSN": "https://key@sentry.example.com/1", + "ENVIRONMENT": "staging", + "GIT_COMMIT": "e145da768b1725ce708150597a565df09c923dc3", + } + ) + config = test_ref_config() + + builder.build_app(settings, config, deps._get_database_dependency(settings, config)) + + assert calls[0]["release"] == "e145da768b1725ce708150597a565df09c923dc3" diff --git a/changelog/140.fix.md b/changelog/140.fix.md new file mode 100644 index 00000000..0b7d9dd6 --- /dev/null +++ b/changelog/140.fix.md @@ -0,0 +1 @@ +Backend errors reported to Sentry now carry the release they came from.