From c22084c7ac32fd83f2189af8fe54971881fa6ebd Mon Sep 17 00:00:00 2001 From: mrT23 Date: Fri, 1 Dec 2023 11:56:03 +0200 Subject: [PATCH 1/3] feat: Add exception handling for missing previous review in github_provider.py --- pr_agent/git_providers/github_provider.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pr_agent/git_providers/github_provider.py b/pr_agent/git_providers/github_provider.py index 1fb85164..b8a13f37 100644 --- a/pr_agent/git_providers/github_provider.py +++ b/pr_agent/git_providers/github_provider.py @@ -60,6 +60,8 @@ class GithubProvider(GitProvider): get_logger().info(f"Skipping merge commit {commit.commit.message}") continue self.file_set.update({file.filename: file for file in commit.files}) + else: + raise ValueError("No previous review found") def get_commit_range(self): last_review_time = self.previous_review.created_at From 3af9c3bfb9b86f096f513de446a08f95541e8107 Mon Sep 17 00:00:00 2001 From: mrT23 Date: Fri, 1 Dec 2023 12:12:49 +0200 Subject: [PATCH 2/3] feat: Enhance code suggestion publishing with language-specific formatting in pr_code_suggestions.py --- pr_agent/tools/pr_code_suggestions.py | 44 ++++++++++++++++++--------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/pr_agent/tools/pr_code_suggestions.py b/pr_agent/tools/pr_code_suggestions.py index f095d94a..3fc96d01 100644 --- a/pr_agent/tools/pr_code_suggestions.py +++ b/pr_agent/tools/pr_code_suggestions.py @@ -251,22 +251,36 @@ class PRCodeSuggestions: def publish_summarizes_suggestions(self, data: Dict): try: data_markdown = "## PR Code Suggestions\n\n" + + language_extension_map_org = get_settings().language_extension_map_org + extension_to_language = {} + for language, extensions in language_extension_map_org.items(): + for ext in extensions: + extension_to_language[ext] = language + for s in data['Code suggestions']: - code_snippet_link = self.git_provider.get_line_link(s['relevant file'], s['relevant lines start'], - s['relevant lines end']) - data_markdown += f"\n💡 Suggestion:\n\n**{s['suggestion content']}**\n\n" - if code_snippet_link: - data_markdown += f" File: [{s['relevant file']} ({s['relevant lines start']}-{s['relevant lines end']})]({code_snippet_link})\n\n" - else: - data_markdown += f"File: {s['relevant file']} ({s['relevant lines start']}-{s['relevant lines end']})\n\n" - if self.git_provider.is_supported("gfm_markdown"): - data_markdown += "
Example code:\n\n" - data_markdown += f"___\n\n" - data_markdown += f"Existing code:\n```{self.main_language}\n{s['existing code']}\n```\n" - data_markdown += f"Improved code:\n```{self.main_language}\n{s['improved code']}\n```\n" - if self.git_provider.is_supported("gfm_markdown"): - data_markdown += "
\n" - data_markdown += "\n___\n\n" + try: + extension_s = s['relevant file'].rsplit('.')[-1] + code_snippet_link = self.git_provider.get_line_link(s['relevant file'], s['relevant lines start'], + s['relevant lines end']) + data_markdown += f"\n💡 Suggestion:\n\n**{s['suggestion content']}**\n\n" + if code_snippet_link: + data_markdown += f" File: [{s['relevant file']} ({s['relevant lines start']}-{s['relevant lines end']})]({code_snippet_link})\n\n" + else: + data_markdown += f"File: {s['relevant file']} ({s['relevant lines start']}-{s['relevant lines end']})\n\n" + if self.git_provider.is_supported("gfm_markdown"): + data_markdown += "
Example code:\n\n" + data_markdown += f"___\n\n" + language_name = "python" + if extension_s and (extension_s in extension_to_language): + language_name = extension_to_language[extension_s] + data_markdown += f"Existing code:\n```{language_name}\n{s['existing code']}\n```\n" + data_markdown += f"Improved code:\n```{language_name}\n{s['improved code']}\n```\n" + if self.git_provider.is_supported("gfm_markdown"): + data_markdown += "
\n" + data_markdown += "\n___\n\n" + except Exception as e: + get_logger().error(f"Could not parse suggestion: {s}, error: {e}") self.git_provider.publish_comment(data_markdown) except Exception as e: get_logger().info(f"Failed to publish summarized code suggestions, error: {e}") From 492dd3c28154039694d9aa1b73f8770b12cee694 Mon Sep 17 00:00:00 2001 From: mrT23 Date: Sun, 3 Dec 2023 08:25:12 +0200 Subject: [PATCH 3/3] docs: Update Azure setup instructions in Usage.md --- Usage.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Usage.md b/Usage.md index 37fd61e1..548249d3 100644 --- a/Usage.md +++ b/Usage.md @@ -233,7 +233,7 @@ To use a different model than the default (GPT-4), you need to edit [configurati For models and environments not from OPENAI, you might need to provide additional keys and other parameters. See below for instructions. #### Azure -To use Azure, set in your .secrets.toml: +To use Azure, set in your `.secrets.toml` (working from CLI), or in the GitHub `Settings > Secrets and variables` (working from GitHub App or GitHub Action): ``` api_key = "" # your azure api key api_type = "azure" @@ -242,12 +242,11 @@ api_base = "" # The base URL for your Azure OpenAI resource. e.g. "https://