Skip to content

Commit d5c21a3

Browse files
committed
limit processing to events we actually listen for
by default, the webhook handler from django-github-app processes and stores all events, even if they are not registered as actionable. since the Pull Request event on GitHub sends many events we are not interested in: > Pull request assigned, auto merge disabled, auto merge enabled, closed, converted to draft, demilestoned, dequeued, edited, enqueued, labeled, locked, milestoned, opened, ready for review, reopened, review request removed, review requested, synchronized, unassigned, unlabeled, or unlocked. This causes floods of events in situations like python/cpython#132964 that we can skip processing for.
1 parent ae9b3e1 commit d5c21a3

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

clabot/github.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,14 @@ class AsyncWebhookView(BaseAsyncWebhookView):
1818
async def post(self, request: HttpRequest) -> JsonResponse:
1919
event = self.get_event(request)
2020

21-
event_log = await EventLog.objects.acreate_from_event(event)
22-
23-
await self.router.adispatch(event, None)
24-
25-
return self.get_response(event_log)
21+
found_callbacks = self.router.fetch(event)
22+
if found_callbacks:
23+
event_log = await EventLog.objects.acreate_from_event(event)
24+
await self.router.adispatch(event, None)
25+
return self.get_response(event_log)
26+
else:
27+
return JsonResponse(
28+
{
29+
"message": "ok",
30+
}
31+
)

0 commit comments

Comments
 (0)