diff --git a/pr_agent/algo/pr_processing.py b/pr_agent/algo/pr_processing.py index 63fe0caa..f99d126c 100644 --- a/pr_agent/algo/pr_processing.py +++ b/pr_agent/algo/pr_processing.py @@ -24,10 +24,10 @@ def get_pr_diff(git_provider: Union[GithubProvider, Any], token_handler: TokenHa Returns a string with the diff of the PR. If needed, apply diff minimization techniques to reduce the number of tokens """ - git_provider.pr.files = list(git_provider.get_diff_files()) + git_provider.pr.diff_files = list(git_provider.get_diff_files()) # get pr languages - pr_languages = sort_files_by_main_languages(git_provider.get_languages(), git_provider.pr.files) + pr_languages = sort_files_by_main_languages(git_provider.get_languages(), git_provider.pr.diff_files) # generate a standard diff string, with patch extension patches_extended, total_tokens = pr_generate_extended_diff(pr_languages, token_handler) diff --git a/pr_agent/git_providers/github_provider.py b/pr_agent/git_providers/github_provider.py index 958a56e8..16ec6293 100644 --- a/pr_agent/git_providers/github_provider.py +++ b/pr_agent/git_providers/github_provider.py @@ -26,8 +26,6 @@ class GithubProvider: self.pr = self._get_pr() def get_files(self): - if hasattr(self.pr, 'files'): - return self.pr.files return self.pr.get_files() def get_diff_files(self) -> list[FilePatchInfo]: diff --git a/pr_agent/tools/pr_reviewer.py b/pr_agent/tools/pr_reviewer.py index 23af99d5..eabf8955 100644 --- a/pr_agent/tools/pr_reviewer.py +++ b/pr_agent/tools/pr_reviewer.py @@ -122,22 +122,27 @@ class PRReviewer: pr = self.git_provider.pr last_commit_id = list(pr.get_commits())[-1] - files = list(self.git_provider.get_diff_files()) + if hasattr(pr, 'diff_files'): # prevent bringing all the files again + diff_files = pr.diff_files + else: + diff_files = list(self.git_provider.get_diff_files()) for d in data['PR Feedback']['Code suggestions']: relevant_file = d['relevant file'].strip() relevant_line_in_file = d['relevant line in file'].strip() content = d['suggestion content'] position = -1 - for file in files: + for file in diff_files: if file.filename.strip() == relevant_file: patch = file.patch patch_lines = patch.splitlines() for i, line in enumerate(patch_lines): if relevant_line_in_file in line: position = i + break if position == -1: - logging.info(f"Could not find position for {relevant_file} {relevant_line_in_file}") + if settings.config.verbosity_level >= 2: + logging.info(f"Could not find position for {relevant_file} {relevant_line_in_file}") else: body = content path = relevant_file.strip()