|
3 | 3 | import hashlib
|
4 | 4 | import hmac
|
5 | 5 | import json
|
6 |
| -import logging |
| 6 | +import structlog |
7 | 7 | import re
|
8 | 8 |
|
9 | 9 | from django.shortcuts import get_object_or_404
|
|
29 | 29 | from readthedocs.integrations.models import HttpExchange, Integration
|
30 | 30 | from readthedocs.projects.models import Feature, Project
|
31 | 31 |
|
32 |
| -log = logging.getLogger(__name__) |
| 32 | +log = structlog.get_logger(__name__) |
33 | 33 |
|
34 | 34 | GITHUB_EVENT_HEADER = 'HTTP_X_GITHUB_EVENT'
|
35 | 35 | GITHUB_SIGNATURE_HEADER = 'HTTP_X_HUB_SIGNATURE'
|
@@ -86,8 +86,9 @@ def post(self, request, project_slug):
|
86 | 86 | raise NotFound('Project not found')
|
87 | 87 | if not self.is_payload_valid():
|
88 | 88 | log.warning(
|
89 |
| - 'Invalid payload for project: %s and integration: %s', |
90 |
| - project_slug, self.integration_type |
| 89 | + 'Invalid payload for project and integration.', |
| 90 | + project_slug=project_slug, |
| 91 | + integration_type=self.integration_type, |
91 | 92 | )
|
92 | 93 | return Response(
|
93 | 94 | {'detail': self.invalid_payload_msg},
|
@@ -184,9 +185,9 @@ def get_response_push(self, project, branches):
|
184 | 185 | to_build, not_building = build_branches(project, branches)
|
185 | 186 | if not_building:
|
186 | 187 | log.info(
|
187 |
| - 'Skipping project branches: project=%s branches=%s', |
188 |
| - project, |
189 |
| - branches, |
| 188 | + 'Skipping project branches.', |
| 189 | + project_slug=project.slug, |
| 190 | + branches=branches, |
190 | 191 | )
|
191 | 192 | triggered = bool(to_build)
|
192 | 193 | return {
|
@@ -338,8 +339,8 @@ def is_payload_valid(self):
|
338 | 339 | secret = self.get_integration().secret
|
339 | 340 | if not secret:
|
340 | 341 | log.info(
|
341 |
| - 'Skipping payload signature validation. project=%s', |
342 |
| - self.project.slug, |
| 342 | + 'Skipping payload signature validation.', |
| 343 | + project_slug=self.project.slug, |
343 | 344 | )
|
344 | 345 | return True
|
345 | 346 | if not signature:
|
@@ -405,7 +406,11 @@ def handle_webhook(self):
|
405 | 406 |
|
406 | 407 | # Sync versions when a branch/tag was created/deleted
|
407 | 408 | if event in (GITHUB_CREATE, GITHUB_DELETE):
|
408 |
| - log.info('Triggered sync_versions: project=%s event=%s', self.project, event) |
| 409 | + log.info( |
| 410 | + 'Triggered sync_versions.', |
| 411 | + project_slug=self.project.slug, |
| 412 | + webhook_event=event, |
| 413 | + ) |
409 | 414 | return self.sync_versions_response(self.project)
|
410 | 415 |
|
411 | 416 | # Handle pull request events
|
@@ -441,7 +446,7 @@ def handle_webhook(self):
|
441 | 446 | # already have the CREATE/DELETE events. So we don't trigger the sync twice.
|
442 | 447 | return self.sync_versions_response(self.project, sync=False)
|
443 | 448 |
|
444 |
| - log.info('Triggered sync_versions: project=%s events=%s', self.project, events) |
| 449 | + log.info('Triggered sync_versions.', project_slug=self.project.slug, events=events) |
445 | 450 | return self.sync_versions_response(self.project)
|
446 | 451 |
|
447 | 452 | # Trigger a build for all branches in the push
|
@@ -512,8 +517,8 @@ def is_payload_valid(self):
|
512 | 517 | secret = self.get_integration().secret
|
513 | 518 | if not secret:
|
514 | 519 | log.info(
|
515 |
| - 'Skipping payload signature validation. project=%s', |
516 |
| - self.project.slug, |
| 520 | + 'Skipping payload signature validation.', |
| 521 | + project_slug=self.project.slug, |
517 | 522 | )
|
518 | 523 | return True
|
519 | 524 | if not token:
|
@@ -554,8 +559,12 @@ def handle_webhook(self):
|
554 | 559 | after = data.get('after')
|
555 | 560 | # Tag/branch created/deleted
|
556 | 561 | if GITLAB_NULL_HASH in (before, after):
|
557 |
| - log.info('Triggered sync_versions: project=%s before=%s after=%s', |
558 |
| - self.project, before, after) |
| 562 | + log.info( |
| 563 | + 'Triggered sync_versions.', |
| 564 | + project_slug=self.project.slug, |
| 565 | + before=before, |
| 566 | + after=after, |
| 567 | + ) |
559 | 568 | return self.sync_versions_response(self.project)
|
560 | 569 | # Normal push to master
|
561 | 570 | try:
|
@@ -652,8 +661,11 @@ def handle_webhook(self):
|
652 | 661 | # will be triggered with the normal push.
|
653 | 662 | if branches:
|
654 | 663 | return self.get_response_push(self.project, branches)
|
655 |
| - log.info('Triggered sync_versions: project=%s event=%s', |
656 |
| - self.project, event) |
| 664 | + log.info( |
| 665 | + 'Triggered sync_versions.', |
| 666 | + project_slug=self.project.slug, |
| 667 | + webhook_event=event, |
| 668 | + ) |
657 | 669 | return self.sync_versions_response(self.project)
|
658 | 670 | except KeyError:
|
659 | 671 | raise ParseError('Invalid request')
|
|
0 commit comments