mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-07-05 13:20:39 +08:00
Add error handling for out-of-range relevant_lines_start and missing head_file in pr_code_suggestions.py
This commit is contained in:
@ -450,8 +450,24 @@ class PRCodeSuggestions:
|
|||||||
original_initial_line = None
|
original_initial_line = None
|
||||||
for file in self.diff_files:
|
for file in self.diff_files:
|
||||||
if file.filename.strip() == relevant_file:
|
if file.filename.strip() == relevant_file:
|
||||||
if file.head_file: # in bitbucket, head_file is empty. toDo: fix this
|
if file.head_file:
|
||||||
original_initial_line = file.head_file.splitlines()[relevant_lines_start - 1]
|
file_lines = file.head_file.splitlines()
|
||||||
|
if len(file_lines) >= relevant_lines_start:
|
||||||
|
get_logger().warning(
|
||||||
|
"Could not dedent code snippet, because relevant_lines_start is out of range",
|
||||||
|
artifact={'filename': file.filename,
|
||||||
|
'file_content': file.head_file,
|
||||||
|
'relevant_lines_start': relevant_lines_start,
|
||||||
|
'new_code_snippet': new_code_snippet})
|
||||||
|
return new_code_snippet
|
||||||
|
else:
|
||||||
|
original_initial_line = file_lines[relevant_lines_start - 1]
|
||||||
|
else:
|
||||||
|
get_logger().warning("Could not dedent code snippet, because head_file is missing",
|
||||||
|
artifact={'filename': file.filename,
|
||||||
|
'relevant_lines_start': relevant_lines_start,
|
||||||
|
'new_code_snippet': new_code_snippet})
|
||||||
|
return new_code_snippet
|
||||||
break
|
break
|
||||||
if original_initial_line:
|
if original_initial_line:
|
||||||
suggested_initial_line = new_code_snippet.splitlines()[0]
|
suggested_initial_line = new_code_snippet.splitlines()[0]
|
||||||
@ -461,7 +477,7 @@ class PRCodeSuggestions:
|
|||||||
if delta_spaces > 0:
|
if delta_spaces > 0:
|
||||||
new_code_snippet = textwrap.indent(new_code_snippet, delta_spaces * " ").rstrip('\n')
|
new_code_snippet = textwrap.indent(new_code_snippet, delta_spaces * " ").rstrip('\n')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
get_logger().error(f"Could not dedent code snippet for file {relevant_file}, error: {e}")
|
get_logger().error(f"Error when dedenting code snippet for file {relevant_file}, error: {e}")
|
||||||
|
|
||||||
return new_code_snippet
|
return new_code_snippet
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user