diff --git a/pr_agent/algo/utils.py b/pr_agent/algo/utils.py index 72a0624c..a6f49d28 100644 --- a/pr_agent/algo/utils.py +++ b/pr_agent/algo/utils.py @@ -812,14 +812,19 @@ def try_fix_yaml(response_text: str, pass # second fallback - try to extract only range from first ```yaml to the last ``` - snippet_pattern = r'```yaml([\s\S]*?)```(?=\s*$|")' + snippet_pattern = r'```(yaml|yml)?([\s\S]*?)```(?=\s*$|")' snippet = re.search(snippet_pattern, '\n'.join(response_text_lines_copy)) if not snippet: snippet = re.search(snippet_pattern, response_text_original) # before we removed the "```" if snippet: snippet_text = snippet.group() + prefix = ( + '```yaml' + if snippet_text.startswith('```yaml') + else ('```yml' if snippet_text.startswith('```yml') else '```') + ) try: - data = yaml.safe_load(snippet_text.removeprefix('```yaml').rstrip('`')) + data = yaml.safe_load(snippet_text.removeprefix(prefix).rstrip('`')) get_logger().info(f"Successfully parsed AI prediction after extracting yaml snippet") return data except: