From 47605fe226393a28e678223b50d02fb5d13ccfec Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Fri, 27 Mar 2026 02:29:52 +0800 Subject: [PATCH] Expand and refine auto-generated file filtering in is_valid_file() Split exact generated filenames from suffix matches so lockfiles are matched by basename, while generated assets such as minified files and source maps use suffix matching. Normalize path separators before basename matching so nested paths are handled consistently. --- pr_agent/algo/language_handler.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/pr_agent/algo/language_handler.py b/pr_agent/algo/language_handler.py index 1271cad8d7..826afccc0e 100644 --- a/pr_agent/algo/language_handler.py +++ b/pr_agent/algo/language_handler.py @@ -20,10 +20,16 @@ def is_valid_file(filename:str, bad_extensions=None) -> bool: if get_settings().config.use_extra_bad_extensions: bad_extensions += get_settings().bad_extensions.extra - auto_generated_files = ['package-lock.json', 'yarn.lock', 'composer.lock', 'Gemfile.lock', 'poetry.lock'] - for forbidden_file in auto_generated_files: - if filename.endswith(forbidden_file): - return False + auto_generated_files_exact = { + 'package-lock.json', 'yarn.lock', 'pnpm-lock.yaml', 'composer.lock', 'Gemfile.lock', + 'poetry.lock', 'go.sum', '.terraform.lock.hcl', 'uv.lock', + 'Cargo.lock', 'Pipfile.lock', 'mix.lock', 'pubspec.lock', 'bun.lockb', + } + auto_generated_suffixes = ('.min.js', '.min.css', '.js.map', '.ts.map', '.css.map') + if filename.replace('\\', '/').split('/')[-1] in auto_generated_files_exact: + return False + if filename.endswith(auto_generated_suffixes): + return False return filename.split('.')[-1] not in bad_extensions