mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-07-02 11:50:37 +08:00
fix: support root-level matching for '**/' globs
- generate an additional regex to match root-level files alongside '**/' patterns. - ensure files in the repo root are correctly excluded from analysis.
This commit is contained in:
@ -17,14 +17,14 @@ def filter_ignored(files, platform = 'github'):
|
||||
glob_setting = get_settings().ignore.glob
|
||||
if isinstance(glob_setting, str): # --ignore.glob=[.*utils.py], --ignore.glob=.*utils.py
|
||||
glob_setting = glob_setting.strip('[]').split(",")
|
||||
patterns += [fnmatch.translate(glob) for glob in glob_setting]
|
||||
patterns += translate_globs_to_regexes(glob_setting)
|
||||
|
||||
code_generators = get_settings().config.get('ignore_language_framework', [])
|
||||
for cg in code_generators:
|
||||
glob_patterns = get_settings().generated_code.get(cg, [])
|
||||
if isinstance(glob_patterns, str):
|
||||
glob_patterns = [glob_patterns]
|
||||
patterns += [fnmatch.translate(glob) for glob in glob_patterns]
|
||||
patterns += translate_globs_to_regexes(glob_patterns)
|
||||
|
||||
# compile all valid patterns
|
||||
compiled_patterns = []
|
||||
@ -73,3 +73,11 @@ def filter_ignored(files, platform = 'github'):
|
||||
print(f"Could not filter file list: {e}")
|
||||
|
||||
return files
|
||||
|
||||
def translate_globs_to_regexes(globs: list):
|
||||
regexes = []
|
||||
for pattern in globs:
|
||||
regexes.append(fnmatch.translate(pattern))
|
||||
if pattern.startswith("**/"): # cover root-level files
|
||||
regexes.append(fnmatch.translate(pattern[3:]))
|
||||
return regexes
|
||||
|
Reference in New Issue
Block a user