From c9c14c10b013eebe1b7c27ec673694bcb0bb0781 Mon Sep 17 00:00:00 2001 From: MarkRx Date: Thu, 30 May 2024 20:16:21 -0400 Subject: [PATCH] Fix some server implementations not properly logging context --- pr_agent/servers/azuredevops_server_webhook.py | 11 ++++++++--- pr_agent/servers/bitbucket_server_webhook.py | 11 ++++++++--- pr_agent/servers/gitlab_webhook.py | 8 ++++++-- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/pr_agent/servers/azuredevops_server_webhook.py b/pr_agent/servers/azuredevops_server_webhook.py index 2b926886..b97ae9c7 100644 --- a/pr_agent/servers/azuredevops_server_webhook.py +++ b/pr_agent/servers/azuredevops_server_webhook.py @@ -26,8 +26,9 @@ from pr_agent.git_providers.utils import apply_repo_settings from pr_agent.log import get_logger from fastapi import Request, Depends from fastapi.security import HTTPBasic, HTTPBasicCredentials -from pr_agent.log import get_logger +from pr_agent.log import LoggingFormat, get_logger, setup_logger +setup_logger(fmt=LoggingFormat.JSON, level="DEBUG") security = HTTPBasic() router = APIRouter() available_commands_rgx = re.compile(r"^\/(" + "|".join(command2class.keys()) + r")\s*") @@ -40,8 +41,12 @@ def handle_request( ): log_context["action"] = body log_context["api_url"] = url - with get_logger().contextualize(**log_context): - background_tasks.add_task(PRAgent().handle_request, url, body) + + async def inner(): + with get_logger().contextualize(**log_context): + await PRAgent().handle_request(url, body) + + background_tasks.add_task(inner) # currently only basic auth is supported with azure webhooks diff --git a/pr_agent/servers/bitbucket_server_webhook.py b/pr_agent/servers/bitbucket_server_webhook.py index 74c2158a..c70cb01c 100644 --- a/pr_agent/servers/bitbucket_server_webhook.py +++ b/pr_agent/servers/bitbucket_server_webhook.py @@ -13,9 +13,10 @@ from starlette_context.middleware import RawContextMiddleware from pr_agent.agent.pr_agent import PRAgent from pr_agent.config_loader import get_settings -from pr_agent.log import get_logger +from pr_agent.log import LoggingFormat, get_logger, setup_logger from pr_agent.servers.utils import verify_signature +setup_logger(fmt=LoggingFormat.JSON, level="DEBUG") router = APIRouter() @@ -24,8 +25,12 @@ def handle_request( ): log_context["action"] = body log_context["api_url"] = url - with get_logger().contextualize(**log_context): - background_tasks.add_task(PRAgent().handle_request, url, body) + + async def inner(): + with get_logger().contextualize(**log_context): + await PRAgent().handle_request(url, body) + + background_tasks.add_task(inner) @router.post("/") diff --git a/pr_agent/servers/gitlab_webhook.py b/pr_agent/servers/gitlab_webhook.py index 715185a8..8839c4f0 100644 --- a/pr_agent/servers/gitlab_webhook.py +++ b/pr_agent/servers/gitlab_webhook.py @@ -27,8 +27,12 @@ def handle_request(background_tasks: BackgroundTasks, url: str, body: str, log_c log_context["action"] = body log_context["event"] = "pull_request" if body == "/review" else "comment" log_context["api_url"] = url - with get_logger().contextualize(**log_context): - background_tasks.add_task(PRAgent().handle_request, url, body) + + async def inner(): + with get_logger().contextualize(**log_context): + await PRAgent().handle_request(url, body) + + background_tasks.add_task(inner) async def _perform_commands_gitlab(commands_conf: str, agent: PRAgent, api_url: str, log_context: dict):