From 50125ae57f8c3f18e787064e28d32e02955f9e04 Mon Sep 17 00:00:00 2001 From: idavidov Date: Sat, 19 Aug 2023 16:12:48 +0300 Subject: [PATCH] various changes as outcomes from AI review --- pr_agent/git_providers/gitlab_provider.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pr_agent/git_providers/gitlab_provider.py b/pr_agent/git_providers/gitlab_provider.py index 6a04f6bf..82024375 100644 --- a/pr_agent/git_providers/gitlab_provider.py +++ b/pr_agent/git_providers/gitlab_provider.py @@ -156,11 +156,14 @@ class GitLabProvider(GitProvider): logging.info(f"Could not find position for {relevant_file} {relevant_line_in_file}") else: # in order to have exact sha's we have to find correct diff for this change - d = self.get_relevant_diff(relevant_file, relevant_line_in_file) + diff = self.get_relevant_diff(relevant_file, relevant_line_in_file) + if diff is None: + logger.error(f"Could not get diff for merge request {self.id_mr}") + raise ValueError(f"Could not get diff for merge request {self.id_mr}") pos_obj = {'position_type': 'text', 'new_path': target_file.filename, 'old_path': target_file.old_filename if target_file.old_filename else target_file.filename, - 'base_sha': d.base_commit_sha, 'start_sha': d.start_commit_sha, 'head_sha': d.head_commit_sha} + 'base_sha': diff.base_commit_sha, 'start_sha': diff.start_commit_sha, 'head_sha': diff.head_commit_sha} if edit_type == 'deletion': pos_obj['old_line'] = source_line_no - 1 elif edit_type == 'addition': @@ -180,7 +183,7 @@ class GitLabProvider(GitProvider): all_diffs = self.mr.diffs.list(get_all=True) if not all_diffs: logging.error('No diffs found for the merge request.') - raise ValueError(f"Could not get diff for merge request {self.id_mr}") + return None for diff in all_diffs: for change in changes['changes']: if change['new_path'] == relevant_file and relevant_line_in_file in change['diff']: