Performance improvement: Filter out bad files before getting their head and original source code and diff

This commit is contained in:
Hussam.lawen
2023-07-18 13:33:32 +03:00
parent 7f0a96d8f7
commit 5d45632247
3 changed files with 33 additions and 25 deletions

View File

@ -64,7 +64,11 @@ bad_extensions = [
def filter_bad_extensions(files):
return [f for f in files if f.filename.split('.')[-1] not in bad_extensions]
return [f for f in files if is_valid_file(f.filename)]
def is_valid_file(filename):
return filename.split('.')[-1] not in bad_extensions
def sort_files_by_main_languages(languages: Dict, files: list):

View File

@ -8,6 +8,7 @@ from github import AppAuthentication, Github
from pr_agent.config_loader import settings
from .git_provider import FilePatchInfo, GitProvider
from ..algo.language_handler import is_valid_file
class GithubProvider(GitProvider):
@ -37,6 +38,7 @@ class GithubProvider(GitProvider):
files = self.pr.get_files()
diff_files = []
for file in files:
if is_valid_file(file.filename):
original_file_content_str = self._get_pr_file_content(file, self.pr.base.sha)
new_file_content_str = self._get_pr_file_content(file, self.pr.head.sha)
diff_files.append(FilePatchInfo(original_file_content_str, new_file_content_str, file.patch, file.filename))

View File

@ -9,6 +9,7 @@ from gitlab import GitlabGetError
from pr_agent.config_loader import settings
from .git_provider import EDIT_TYPE, FilePatchInfo, GitProvider
from ..algo.language_handler import is_valid_file
class GitLabProvider(GitProvider):
@ -59,6 +60,7 @@ class GitLabProvider(GitProvider):
diffs = self.mr.changes()['changes']
diff_files = []
for diff in diffs:
if is_valid_file(diff['new_path']):
original_file_content_str = self._get_pr_file_content(diff['old_path'], self.mr.target_branch)
new_file_content_str = self._get_pr_file_content(diff['new_path'], self.mr.source_branch)
edit_type = EDIT_TYPE.MODIFIED