From cb65b05e858cbdd71cd85526b55d87e4d90140ff Mon Sep 17 00:00:00 2001 From: mrT23 Date: Tue, 13 Aug 2024 11:33:19 +0300 Subject: [PATCH] Add error handling for missing username fields in Bitbucket webhook handler and update log context --- pr_agent/servers/bitbucket_app.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/pr_agent/servers/bitbucket_app.py b/pr_agent/servers/bitbucket_app.py index 634b48bf..988c170b 100644 --- a/pr_agent/servers/bitbucket_app.py +++ b/pr_agent/servers/bitbucket_app.py @@ -108,13 +108,18 @@ async def handle_github_webhooks(background_tasks: BackgroundTasks, request: Req return "OK" except KeyError: get_logger().error("Failed to get actor type, check previous logs, this shouldn't happen.") + + # Get the username of the sender try: - owner = data["data"]["repository"]["owner"]["username"] - except Exception as e: - get_logger().error(f"Failed to get owner, will continue: {e}") - owner = "unknown" + username = data["data"]["actor"]["username"] + except KeyError: + try: + username = data["data"]["actor"]["display_name"] + except KeyError: + username = data["data"]["actor"]["nickname"] + log_context["sender"] = username + sender_id = data["data"]["actor"]["account_id"] - log_context["sender"] = owner log_context["sender_id"] = sender_id jwt_parts = input_jwt.split(".") claim_part = jwt_parts[1]