From 6a0efbb3ae7c321421a30de726986522a79e0624 Mon Sep 17 00:00:00 2001 From: Chris Lovering Date: Tue, 12 Dec 2023 15:33:55 +0000 Subject: [PATCH 1/3] Enable tracing and include source for slow queries --- pydis_site/settings.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pydis_site/settings.py b/pydis_site/settings.py index ec8efac30..5a6edfdf9 100644 --- a/pydis_site/settings.py +++ b/pydis_site/settings.py @@ -55,7 +55,10 @@ integrations=[DjangoIntegration(), LoggingIntegration(level=logging.DEBUG, event_level=logging.ERROR)], send_default_pii=True, release=f"site@{GIT_SHA}", - profiles_sample_rate=0.5, + profiles_sample_rate=1.0, + enable_tracing=True, + enable_db_query_source=True, + db_query_source_threshold_ms=100, # Queries slower that 100ms will include the source in the event ) # Build paths inside the project like this: os.path.join(BASE_DIR, ...) From c7e1c562de989cb7a4b7bce19a15de557c58743b Mon Sep 17 00:00:00 2001 From: Chris Lovering Date: Tue, 12 Dec 2023 15:45:43 +0000 Subject: [PATCH 2/3] Convert to lower case before checking equality --- pydis_site/apps/api/views.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pydis_site/apps/api/views.py b/pydis_site/apps/api/views.py index 9b0974f34..20c7536c0 100644 --- a/pydis_site/apps/api/views.py +++ b/pydis_site/apps/api/views.py @@ -261,30 +261,30 @@ class GitHubWebhookFilterView(APIView): def post(self, request: Request, *, webhook_id: str, webhook_token: str) -> Response: """Filter a webhook POST from GitHub before sending it to Discord.""" sender = request.data.get('sender', {}) - sender_name = sender.get('login', '') - event = request.headers.get('X-GitHub-Event') + sender_name = sender.get('login', '').lower() + event = request.headers.get('X-GitHub-Event', '').lower() repository = request.data.get('repository', {}) is_coveralls = 'coveralls' in sender_name - is_github_bot = sender.get('type') == 'bot' + is_github_bot = sender.get('type', '').lower() == 'bot' is_sentry = 'sentry-io' in sender_name is_dependabot_branch_deletion = ( - 'dependabot' in request.data.get('ref', '') + 'dependabot' in request.data.get('ref', '').lower() and event == 'delete' ) is_bot_pr_approval = ( - '[bot]' in request.data.get('pull_request', {}).get('user', {}).get('login', '') + '[bot]' in request.data.get('pull_request', {}).get('user', {}).get('login', '').lower() and event == 'pull_request_review' ) is_empty_review = ( - request.data.get('review', {}).get('state') == 'commented' + request.data.get('review', {}).get('state', '').lower() == 'commented' and event == 'pull_request_review' and request.data.get('review', {}).get('body') is None ) is_black_non_main_push = ( request.data.get('ref') != 'refs/heads/main' - and repository.get('name') == 'black' - and repository.get('owner', {}).get('login') == 'psf' + and repository.get('name', '').lower() == 'black' + and repository.get('owner', {}).get('login', '').lower() == 'psf' and event == 'push' ) From ab17a7a80e6f90a4dddb04325c29deb8065f1499 Mon Sep 17 00:00:00 2001 From: Chris Lovering Date: Tue, 12 Dec 2023 15:58:24 +0000 Subject: [PATCH 3/3] Simplify is_bot_pr_approval logic --- pydis_site/apps/api/views.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pydis_site/apps/api/views.py b/pydis_site/apps/api/views.py index 20c7536c0..1fa3efc28 100644 --- a/pydis_site/apps/api/views.py +++ b/pydis_site/apps/api/views.py @@ -272,10 +272,7 @@ def post(self, request: Request, *, webhook_id: str, webhook_token: str) -> Resp 'dependabot' in request.data.get('ref', '').lower() and event == 'delete' ) - is_bot_pr_approval = ( - '[bot]' in request.data.get('pull_request', {}).get('user', {}).get('login', '').lower() - and event == 'pull_request_review' - ) + is_bot_pr_approval = is_github_bot and event == 'pull_request_review' is_empty_review = ( request.data.get('review', {}).get('state', '').lower() == 'commented' and event == 'pull_request_review'