Add file ignore functionality and update documentation for ignore patterns

This commit is contained in:
mrT23
2024-06-13 12:27:10 +03:00
parent aa56c0097d
commit 58bc54b193
3 changed files with 19 additions and 1 deletions

View File

@ -38,6 +38,9 @@ def filter_ignored(files):
elif isinstance(files[0], dict) and 'new_path' in files[0]: # gitlab
for r in compiled_patterns:
files = [f for f in files if (f['new_path'] and not r.match(f['new_path']))]
elif isinstance(files[0], str): # azure devops
for r in compiled_patterns:
files = [f for f in files if not r.match(f)]
except Exception as e:
print(f"Could not filter file list: {e}")

View File

@ -15,7 +15,7 @@ def filter_bad_extensions(files):
return [f for f in files if f.filename is not None and is_valid_file(f.filename)]
def is_valid_file(filename):
def is_valid_file(filename: str):
return filename.split('.')[-1] not in bad_extensions

View File

@ -2,6 +2,7 @@ import os
from typing import Optional, Tuple
from urllib.parse import urlparse
from ..algo.file_filter import filter_ignored
from ..log import get_logger
from ..algo.language_handler import is_valid_file
from ..algo.utils import clip_tokens, find_line_number_of_relevant_line_in_file, load_large_diff
@ -284,8 +285,20 @@ class AzureDevopsProvider(GitProvider):
#
# diffs = list(set(diffs))
diffs_original = diffs
diffs = filter_ignored(diffs_original)
if diffs_original != diffs:
try:
get_logger().info(f"Filtered out [ignore] files for pull request:", extra=
{"files": diffs_original, # diffs is just a list of names
"filtered_files": diffs})
except Exception:
pass
invalid_files_names = []
for file in diffs:
if not is_valid_file(file):
invalid_files_names.append(file)
continue
version = GitVersionDescriptor(
@ -350,6 +363,8 @@ class AzureDevopsProvider(GitProvider):
edit_type=edit_type,
)
)
get_logger().info(f"Invalid files: {invalid_files_names}")
self.diff_files = diff_files
return diff_files
except Exception as e: