diff --git a/Pipfile b/Pipfile index 9e440481..f86708c1 100644 --- a/Pipfile +++ b/Pipfile @@ -18,6 +18,7 @@ gevent = "*" packaging = "*" django-environ = "*" boto3 = "*" +sentry-sdk = "==0.7.10" [dev-packages] "flake8" = "*" diff --git a/Pipfile.lock b/Pipfile.lock index 4bf45f76..d0bfea54 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "de9033e279afa3aa5dfb7a263f9e5b855543712b0cd5a20abd1cba5a45564dd6" + "sha256": "15ae652479f5393d7f17ac02e242e1866085b1d736da57e477c114fa32e23e95" }, "pipfile-spec": 6, "requires": { @@ -18,18 +18,18 @@ "default": { "boto3": { "hashes": [ - "sha256:2efd0a9647ef8fd7bf9fbbfdeb77007050258aa39914569c689bdf9cc288cdc1", - "sha256:331b82e878f524be11c10d866a68b123b1c5e892d218a8250de10bf11cb14402" + "sha256:69a8df48365dde32744e1c62fbfd09e98cb494380498b21c2b2ee8310fa4f686", + "sha256:eff5d983f6849e4f866ce30ef2fd5048dc5f07de7639b5f988faca56b793a294" ], "index": "pypi", - "version": "==1.9.244" + "version": "==1.10.17" }, "botocore": { "hashes": [ - "sha256:7b75482156ef93e7a463f80411dc76fc868cd9fb1dedf03250cec98f8459d765", - "sha256:e43e7d19f203d572f78c18a6a16cb87bbea10bc0543e0285f7b6a35d0c825bb6" + "sha256:331f624a145be872852e6bff56ed53f5881a8ddb309df2c18e197482c59f5bc8", + "sha256:fc79a28d2f8e04e30b3e02b8d3779b4b721d71e5dbe57c6b265ef99575fd9667" ], - "version": "==1.12.244" + "version": "==1.13.17" }, "certifi": { "hashes": [ @@ -172,11 +172,11 @@ }, "gunicorn": { "hashes": [ - "sha256:aa8e0b40b4157b36a5df5e599f45c9c76d6af43845ba3b3b0efe2c70473c2471", - "sha256:fa2662097c66f920f53f70621c6c58ca4a3c4d3434205e608e121b5b3b71f4f3" + "sha256:0806b5e8a2eb8ba9ac1be65d7b743ec896fc25f5d6cb16c5e051540157b315bb", + "sha256:ef69dea4814df95e64e3f40b47b7ffedc6911c5009233be9d01cfd0d14aa3f50" ], "index": "pypi", - "version": "==19.9.0" + "version": "==20.0.0" }, "idna": { "hashes": [ @@ -254,10 +254,10 @@ }, "pyparsing": { "hashes": [ - "sha256:6f98a7b9397e206d78cc01df10131398f1c8b8510a2f4d97d9abd82e1aacdd80", - "sha256:d9338df12903bbf5d65a0e4e87c2161968b10d2e489652bb47001d82a9b028b4" + "sha256:20f995ecd72f2a1f4bf6b072b63b22e2eb457836601e76d6e5dfcd75436acc1f", + "sha256:4ca62001be367f01bd3e92ecbb79070272a9d4964dce6a48a82ff0b8bc7e683a" ], - "version": "==2.4.2" + "version": "==2.4.5" }, "python-dateutil": { "hashes": [ @@ -321,12 +321,20 @@ ], "version": "==0.2.1" }, + "sentry-sdk": { + "hashes": [ + "sha256:ca2723556c102a1fabdf461b9a038d1d8631608c4d10085a7c06a0b590e79ad4", + "sha256:ced85a48171b3421d71f14f1682168f8008581411893e42359469c397fdf6285" + ], + "index": "pypi", + "version": "==0.7.10" + }, "six": { "hashes": [ - "sha256:3350809f0555b11f552448330d0b52d5f24c91a322ea4a15ef22629740f3761c", - "sha256:d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73" + "sha256:1f1b7d42e254082a9db6279deae68afb421ceba6158efa6131de7b3003ee93fd", + "sha256:30f610279e8b2578cab6db20741130331735c781b56053c59c4076da27f06b66" ], - "version": "==1.12.0" + "version": "==1.13.0" }, "uritemplate": { "hashes": [ @@ -371,10 +379,10 @@ }, "attrs": { "hashes": [ - "sha256:ec20e7a4825331c1b5ebf261d111e16fa9612c1f7a5e1f884f12bd53a664dfd2", - "sha256:f913492e1663d3c36f502e5e9ba6cd13cf19d7fab50aa13239e420fef95e1396" + "sha256:08a96c641c3a74e44eb59afb61a24f2cb9f4d7188748e76ba4bb5edfa3cb7d1c", + "sha256:f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72" ], - "version": "==19.2.0" + "version": "==19.3.0" }, "autopep8": { "hashes": [ @@ -445,10 +453,10 @@ }, "decorator": { "hashes": [ - "sha256:86156361c50488b84a3f148056ea716ca587df2f0de1d34750d35c21312725de", - "sha256:f069f3a01830ca754ba5258fde2278454a0b5b79e0d7f5c13b3b97e57d4acff6" + "sha256:54c38050039232e1db4ad7375cfce6748d7b41c29e95a081c8a6d2c30364a2ce", + "sha256:5d19b92a3c8f7f101c8dd86afd86b0f061a8ce4540ab8cd401fa2542756bce6d" ], - "version": "==4.4.0" + "version": "==4.4.1" }, "entrypoints": { "hashes": [ @@ -459,19 +467,19 @@ }, "flake8": { "hashes": [ - "sha256:19241c1cbc971b9962473e4438a2ca19749a7dd002dd1a946eaba171b4114548", - "sha256:8e9dfa3cecb2400b3738a42c54c3043e821682b9c840b0448c0503f781130696" + "sha256:45681a117ecc81e870cbf1262835ae4af5e7a8b08e40b944a8a6e6b895914cfb", + "sha256:49356e766643ad15072a789a20915d3c91dc89fd313ccd71802303fd67e4deca" ], "index": "pypi", - "version": "==3.7.8" + "version": "==3.7.9" }, "ipython": { "hashes": [ - "sha256:c4ab005921641e40a68e405e286e7a1fcc464497e14d81b6914b4fd95e5dee9b", - "sha256:dd76831f065f17bddd7eaa5c781f5ea32de5ef217592cf019e34043b56895aa1" + "sha256:dfd303b270b7b5232b3d08bd30ec6fd685d8a58cabd54055e3d69d8f029f7280", + "sha256:ed7ebe1cba899c1c3ccad6f7f1c2d2369464cc77dba8eebc65e2043e19cda995" ], "index": "pypi", - "version": "==7.8.0" + "version": "==7.9.0" }, "ipython-genutils": { "hashes": [ @@ -554,10 +562,10 @@ }, "six": { "hashes": [ - "sha256:3350809f0555b11f552448330d0b52d5f24c91a322ea4a15ef22629740f3761c", - "sha256:d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73" + "sha256:1f1b7d42e254082a9db6279deae68afb421ceba6158efa6131de7b3003ee93fd", + "sha256:30f610279e8b2578cab6db20741130331735c781b56053c59c4076da27f06b66" ], - "version": "==1.12.0" + "version": "==1.13.0" }, "toml": { "hashes": [ diff --git a/bothub/settings.py b/bothub/settings.py index 88cb81d9..8bf4e6ab 100644 --- a/bothub/settings.py +++ b/bothub/settings.py @@ -1,8 +1,10 @@ import os import environ +import sentry_sdk from django.utils.log import DEFAULT_LOGGING +from sentry_sdk.integrations.django import DjangoIntegration from .utils import cast_supported_languages from .utils import cast_empty_str_to_none @@ -49,6 +51,8 @@ BOTHUB_BOT_EMAIL=(str, "bot_repository@bothub.it"), BOTHUB_BOT_NAME=(str, "Bot Repository"), BOTHUB_BOT_NICKNAME=(str, "bot_repository"), + BOTHUB_ENGINE_USE_SENTRY=(bool, False), + BOTHUB_ENGINE_SENTRY=(str, None), ) # Build paths inside the project like this: os.path.join(BASE_DIR, ...) @@ -288,3 +292,15 @@ BOTHUB_BOT_EMAIL = env.str("BOTHUB_BOT_EMAIL") BOTHUB_BOT_NAME = env.str("BOTHUB_BOT_NAME") BOTHUB_BOT_NICKNAME = env.str("BOTHUB_BOT_NICKNAME") + +# Sentry Environment + +BOTHUB_ENGINE_USE_SENTRY = env.bool("BOTHUB_ENGINE_USE_SENTRY") + + +# Sentry + +if BOTHUB_ENGINE_USE_SENTRY: + sentry_sdk.init( + dsn=env.str("BOTHUB_ENGINE_SENTRY"), integrations=[DjangoIntegration()] + )