mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-07-02 11:50:37 +08:00
Add file ignore functionality and update documentation for ignore patterns
This commit is contained in:
@ -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}")
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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:
|
||||
|
Reference in New Issue
Block a user