Skip to content

Commit

Permalink
Merge pull request #1125 from Codium-ai/tr/err_protections
Browse files Browse the repository at this point in the history
Tr/err protections
  • Loading branch information
mrT23 authored Aug 13, 2024
2 parents 5feb665 + 396d11a commit a18a0bf
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 4 deletions.
24 changes: 22 additions & 2 deletions pr_agent/algo/file_filter.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,29 @@ def filter_ignored(files, platform = 'github'):
if platform == 'github':
files = [f for f in files if (f.filename and not r.match(f.filename))]
elif platform == 'bitbucket':
files = [f for f in files if (f.new.path and not r.match(f.new.path))]
# files = [f for f in files if (f.new.path and not r.match(f.new.path))]
files_o = []
for f in files:
if hasattr(f, 'new'):
if f.new and f.new.path and not r.match(f.new.path):
files_o.append(f)
continue
if hasattr(f, 'old'):
if f.old and f.old.path and not r.match(f.old.path):
files_o.append(f)
continue
files = files_o
elif platform == 'gitlab':
files = [f for f in files if (f['new_path'] and not r.match(f['new_path']))]
# files = [f for f in files if (f['new_path'] and not r.match(f['new_path']))]
files_o = []
for f in files:
if 'new_path' in f and f['new_path'] and not r.match(f['new_path']):
files_o.append(f)
continue
if 'old_path' in f and f['old_path'] and not r.match(f['old_path']):
files_o.append(f)
continue
files = files_o
elif platform == 'azure':
files = [f for f in files if not r.match(f)]

Expand Down
10 changes: 8 additions & 2 deletions pr_agent/git_providers/bitbucket_provider.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,17 +134,23 @@ def get_diff_files(self) -> list[FilePatchInfo]:
if diffs != diffs_original:
try:
names_original = [d.new.path for d in diffs_original]
names_filtered = [d.new.path for d in diffs]
names_kept = [d.new.path for d in diffs]
names_filtered = list(set(names_original) - set(names_kept))
get_logger().info(f"Filtered out [ignore] files for PR", extra={
'original_files': names_original,
'filtered_files': names_filtered
'names_kept': names_kept,
'names_filtered': names_filtered

})
except Exception as e:
pass

# get the pr patches
pr_patch = self.pr.diff()
diff_split = ["diff --git" + x for x in pr_patch.split("diff --git") if x.strip()]
# filter all elements of 'diff_split' that are of indices in 'diffs_original' that are not in 'diffs'
if len(diff_split) > len(diffs) and len(diffs_original) == len(diff_split):
diff_split = [diff_split[i] for i in range(len(diff_split)) if diffs_original[i] in diffs]
if len(diff_split) != len(diffs):
get_logger().error(f"Error - failed to split the diff into {len(diffs)} parts")
return []
Expand Down

0 comments on commit a18a0bf

Please sign in to comment.