From 380437b44f980cf903dd20867e92553e0a55cad8 Mon Sep 17 00:00:00 2001 From: furikake6000 Date: Mon, 14 Jul 2025 15:26:30 +0000 Subject: [PATCH 1/2] feat: add support for filtering ignored files in Bitbucket Server provider --- pr_agent/algo/file_filter.py | 2 ++ pr_agent/git_providers/bitbucket_server_provider.py | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pr_agent/algo/file_filter.py b/pr_agent/algo/file_filter.py index 109aede9..0812759f 100644 --- a/pr_agent/algo/file_filter.py +++ b/pr_agent/algo/file_filter.py @@ -56,6 +56,8 @@ def filter_ignored(files, platform = 'github'): files_o.append(f) continue files = files_o + elif platform == 'bitbucket_server': + files = [f for f in files if not r.match(f['path']['toString'])] elif platform == 'gitlab': # files = [f for f in files if (f['new_path'] and not r.match(f['new_path']))] files_o = [] diff --git a/pr_agent/git_providers/bitbucket_server_provider.py b/pr_agent/git_providers/bitbucket_server_provider.py index 8417d910..43cdad7c 100644 --- a/pr_agent/git_providers/bitbucket_server_provider.py +++ b/pr_agent/git_providers/bitbucket_server_provider.py @@ -10,6 +10,7 @@ from requests.exceptions import HTTPError import shlex import subprocess +from ..algo.file_filter import filter_ignored from ..algo.git_patch_processing import decode_if_bytes from ..algo.language_handler import is_valid_file from ..algo.types import EDIT_TYPE, FilePatchInfo @@ -244,7 +245,8 @@ class BitbucketServerProvider(GitProvider): original_file_content_str = "" new_file_content_str = "" - changes = self.bitbucket_client.get_pull_requests_changes(self.workspace_slug, self.repo_slug, self.pr_num) + changes_original = list(self.bitbucket_client.get_pull_requests_changes(self.workspace_slug, self.repo_slug, self.pr_num)) + changes = filter_ignored(changes_original, 'bitbucket_server') for change in changes: file_path = change['path']['toString'] if not is_valid_file(file_path.split("/")[-1]): From bdee6f9f3624b9b090b2d24d19b6b3e07ce481e0 Mon Sep 17 00:00:00 2001 From: furikake6000 Date: Mon, 21 Jul 2025 10:15:57 +0000 Subject: [PATCH 2/2] fix: add error handling to bitbucket file filtering --- pr_agent/algo/file_filter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pr_agent/algo/file_filter.py b/pr_agent/algo/file_filter.py index 0812759f..3177d0b1 100644 --- a/pr_agent/algo/file_filter.py +++ b/pr_agent/algo/file_filter.py @@ -57,7 +57,7 @@ def filter_ignored(files, platform = 'github'): continue files = files_o elif platform == 'bitbucket_server': - files = [f for f in files if not r.match(f['path']['toString'])] + files = [f for f in files if f.get('path', {}).get('toString') and not r.match(f['path']['toString'])] elif platform == 'gitlab': # files = [f for f in files if (f['new_path'] and not r.match(f['new_path']))] files_o = []