mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-07-04 21:00:40 +08:00
Add logging for empty PR files and code suggestions status in pr_code_suggestions.py
This commit is contained in:
@ -52,6 +52,7 @@ class PRCodeSuggestions:
|
|||||||
self.ai_handler.main_pr_language = self.main_language
|
self.ai_handler.main_pr_language = self.main_language
|
||||||
self.patches_diff = None
|
self.patches_diff = None
|
||||||
self.prediction = None
|
self.prediction = None
|
||||||
|
self.pr_url = pr_url
|
||||||
self.cli_mode = cli_mode
|
self.cli_mode = cli_mode
|
||||||
self.vars = {
|
self.vars = {
|
||||||
"title": self.git_provider.pr.title,
|
"title": self.git_provider.pr.title,
|
||||||
@ -81,6 +82,10 @@ class PRCodeSuggestions:
|
|||||||
|
|
||||||
async def run(self):
|
async def run(self):
|
||||||
try:
|
try:
|
||||||
|
if not self.git_provider.get_files():
|
||||||
|
get_logger().info(f"PR has no files: {self.pr_url}, skipping code suggestions")
|
||||||
|
return None
|
||||||
|
|
||||||
get_logger().info('Generating code suggestions for PR...')
|
get_logger().info('Generating code suggestions for PR...')
|
||||||
relevant_configs = {'pr_code_suggestions': dict(get_settings().pr_code_suggestions),
|
relevant_configs = {'pr_code_suggestions': dict(get_settings().pr_code_suggestions),
|
||||||
'config': dict(get_settings().config)}
|
'config': dict(get_settings().config)}
|
||||||
@ -159,6 +164,8 @@ class PRCodeSuggestions:
|
|||||||
self.push_inline_code_suggestions(data)
|
self.push_inline_code_suggestions(data)
|
||||||
if self.progress_response:
|
if self.progress_response:
|
||||||
self.progress_response.delete()
|
self.progress_response.delete()
|
||||||
|
else:
|
||||||
|
get_logger().info('Code suggestions generated for PR, but not published since publish_output is False.')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
get_logger().error(f"Failed to generate code suggestions for PR, error: {e}")
|
get_logger().error(f"Failed to generate code suggestions for PR, error: {e}")
|
||||||
if self.progress_response:
|
if self.progress_response:
|
||||||
@ -177,6 +184,7 @@ class PRCodeSuggestions:
|
|||||||
final_update_message=True,
|
final_update_message=True,
|
||||||
max_previous_comments=4,
|
max_previous_comments=4,
|
||||||
progress_response=None):
|
progress_response=None):
|
||||||
|
|
||||||
if isinstance(self.git_provider, AzureDevopsProvider): # get_latest_commit_url is not supported yet
|
if isinstance(self.git_provider, AzureDevopsProvider): # get_latest_commit_url is not supported yet
|
||||||
if progress_response:
|
if progress_response:
|
||||||
self.git_provider.edit_comment(progress_response, pr_comment)
|
self.git_provider.edit_comment(progress_response, pr_comment)
|
||||||
@ -361,12 +369,14 @@ class PRCodeSuggestions:
|
|||||||
one_sentence_summary_list = []
|
one_sentence_summary_list = []
|
||||||
for i, suggestion in enumerate(data['code_suggestions']):
|
for i, suggestion in enumerate(data['code_suggestions']):
|
||||||
try:
|
try:
|
||||||
needed_keys = ['one_sentence_summary', 'label', 'relevant_file', 'relevant_lines_start', 'relevant_lines_end']
|
needed_keys = ['one_sentence_summary', 'label', 'relevant_file', 'relevant_lines_start',
|
||||||
|
'relevant_lines_end']
|
||||||
is_valid_keys = True
|
is_valid_keys = True
|
||||||
for key in needed_keys:
|
for key in needed_keys:
|
||||||
if key not in suggestion:
|
if key not in suggestion:
|
||||||
is_valid_keys = False
|
is_valid_keys = False
|
||||||
get_logger().debug(f"Skipping suggestion {i + 1}, because it does not contain '{key}':\n'{suggestion}")
|
get_logger().debug(
|
||||||
|
f"Skipping suggestion {i + 1}, because it does not contain '{key}':\n'{suggestion}")
|
||||||
break
|
break
|
||||||
if not is_valid_keys:
|
if not is_valid_keys:
|
||||||
continue
|
continue
|
||||||
@ -529,7 +539,7 @@ class PRCodeSuggestions:
|
|||||||
get_logger().error(f"Error getting PR diff for suggestion {i} in call {j}, error: {e}")
|
get_logger().error(f"Error getting PR diff for suggestion {i} in call {j}, error: {e}")
|
||||||
self.data = data
|
self.data = data
|
||||||
else:
|
else:
|
||||||
get_logger().error(f"Error getting PR diff")
|
get_logger().warning(f"Empty PR diff list")
|
||||||
self.data = data = None
|
self.data = data = None
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user