From f36b672eaaede6838720cf82610f0323639a9237 Mon Sep 17 00:00:00 2001 From: mrT23 Date: Sun, 26 Nov 2023 11:22:14 +0200 Subject: [PATCH] feat: Add option to summarize code suggestions in pr_code_suggestions.py --- pr_agent/tools/pr_code_suggestions.py | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/pr_agent/tools/pr_code_suggestions.py b/pr_agent/tools/pr_code_suggestions.py index 9e8d7f15..3f4c3149 100644 --- a/pr_agent/tools/pr_code_suggestions.py +++ b/pr_agent/tools/pr_code_suggestions.py @@ -75,8 +75,30 @@ class PRCodeSuggestions: if get_settings().config.publish_output: get_logger().info('Pushing PR review...') self.git_provider.remove_initial_comment() - get_logger().info('Pushing inline code suggestions...') - self.push_inline_code_suggestions(data) + if get_settings().pr_code_suggestions.summarize: + get_logger().info('Pushing summarize code suggestions...') + data_markdown = "## Code suggestions\n\n" + for s in data['Code suggestions']: + import hashlib + relevant_file = s['relevant file'] + sha_file = hashlib.sha256(relevant_file.encode('utf-8')).hexdigest() + absolute_position_start = s['relevant lines start'] + absolute_position_end = s['relevant lines end'] + link = f"https://github.com/{self.git_provider.repo}/pull/{self.git_provider.pr_num}/files#diff-{sha_file}R{absolute_position_start}-R{absolute_position_end}" + + data_markdown += f"File:\n [{s['relevant file']}({absolute_position_start}-{absolute_position_end})]({link})\n" + data_markdown += f"\nSuggestion:\n**{s['suggestion content']}**\n" + data_markdown += "
Example code:\n" + data_markdown += f"Existing code:\n```suggestion\n{s['existing code']}\n```\n" + data_markdown += f"Improved code:\n```suggestion\n{s['improved code']}\n```\n" + data_markdown += "
\n" + data_markdown += "\n___\n\n" + # data_markdown = convert_to_markdown(data) + self.git_provider.publish_comment(data_markdown) + aaa = 3 + else: + get_logger().info('Pushing inline code suggestions...') + self.push_inline_code_suggestions(data) except Exception as e: get_logger().error(f"Failed to generate code suggestions for PR, error: {e}")