From 71bbc52a998e70615a2c3201753f9553f278e441 Mon Sep 17 00:00:00 2001 From: Tal Date: Sat, 12 Jul 2025 20:13:45 +0300 Subject: [PATCH] Update bitbucket_server_webhook.py --- pr_agent/servers/bitbucket_server_webhook.py | 35 ++++++++++---------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/pr_agent/servers/bitbucket_server_webhook.py b/pr_agent/servers/bitbucket_server_webhook.py index 56763e98..a38644f0 100644 --- a/pr_agent/servers/bitbucket_server_webhook.py +++ b/pr_agent/servers/bitbucket_server_webhook.py @@ -102,26 +102,25 @@ def should_process_pr_logic(data) -> bool: # Allow_only_specific_folders allowed_folders = get_settings().config.get("allow_only_specific_folders", []) if allowed_folders and pr_id and project_key and repo_slug: - try: - from pr_agent.git_providers.bitbucket_server_provider import BitbucketServerProvider - bitbucket_server_url = get_settings().get("BITBUCKET_SERVER.URL", "") - pr_url = f"{bitbucket_server_url}/projects/{project_key}/repos/{repo_slug}/pull-requests/{pr_id}" - provider = BitbucketServerProvider(pr_url=pr_url) - changed_files = provider.get_files() - if changed_files: - # Check if ALL files are outside allowed folders - all_files_outside = True - for file_path in changed_files: - if any(file_path.startswith(folder) for folder in allowed_folders): - all_files_outside = False - break - - if all_files_outside: - get_logger().info(f"Ignoring PR because all files {changed_files} are outside allowed folders {allowed_folders}") - return False + from pr_agent.git_providers.bitbucket_server_provider import BitbucketServerProvider + bitbucket_server_url = get_settings().get("BITBUCKET_SERVER.URL", "") + pr_url = f"{bitbucket_server_url}/projects/{project_key}/repos/{repo_slug}/pull-requests/{pr_id}" + provider = BitbucketServerProvider(pr_url=pr_url) + changed_files = provider.get_files() + if changed_files: + # Check if ALL files are outside allowed folders + all_files_outside = True + for file_path in changed_files: + if any(file_path.startswith(folder) for folder in allowed_folders): + all_files_outside = False + break + + if all_files_outside: + get_logger().info(f"Ignoring PR because all files {changed_files} are outside allowed folders {allowed_folders}") + return False except Exception as e: get_logger().error(f"Failed 'should_process_pr_logic': {e}") - return True + return True # On exception - we continue. Otherwise, we could just end up with filtering all PRs return True @router.post("/")