From d7c0f87ea539b8db2ed91b99e29e7f537459542f Mon Sep 17 00:00:00 2001 From: mrT23 Date: Wed, 3 Jul 2024 08:19:58 +0300 Subject: [PATCH] table --- pr_agent/algo/utils.py | 84 ++++++++++++++++++++++++++++++++---------- 1 file changed, 64 insertions(+), 20 deletions(-) diff --git a/pr_agent/algo/utils.py b/pr_agent/algo/utils.py index d7c31418..d91e9c06 100644 --- a/pr_agent/algo/utils.py +++ b/pr_agent/algo/utils.py @@ -204,6 +204,9 @@ def convert_to_markdown_v2(output_data: dict, gfm_supported: bool = True, increm # if not output_data or not output_data.get('review', {}): # return "" + if gfm_supported: + markdown_text += "\n" + for key, value in output_data['review'].items(): if value is None or value == '' or value == {} or value == []: if key.lower() != 'can_be_split': @@ -216,42 +219,82 @@ def convert_to_markdown_v2(output_data: dict, gfm_supported: bool = True, increm blue_bars = '🔵' * value_int white_bars = '⚪' * (5 - value_int) value = f"{value.strip()} {blue_bars}{white_bars}" - markdown_text += f"### {emoji} {key_nice}: {value}\n\n" + if gfm_supported: + markdown_text += f"\n" + else: + markdown_text += f"### {emoji} {key_nice}: {value}\n\n" elif 'relevant tests' in key_nice.lower(): value = value.strip().lower() - if is_value_no(value): - markdown_text += f'### {emoji} No relevant tests\n\n' + if gfm_supported: + markdown_text += f"\n" else: - markdown_text += f"### PR contains tests\n\n" + if gfm_supported: + markdown_text += f"\n" else: - markdown_text += f"### {emoji} Security concerns\n\n" - value = emphasize_header(value.strip()) - markdown_text += f"{value}\n\n" - elif 'can be split' in key_nice.lower(): + if is_value_no(value): + markdown_text += f'### {emoji} No security concerns identified\n\n' + else: + markdown_text += f"### {emoji} Security concerns\n\n" + value = emphasize_header(value.strip()) + markdown_text += f"{value}\n\n" + elif 'can be split' in key_nice.lower() and gfm_supported: + markdown_text += f"\n" elif 'key issues to review' in key_nice.lower(): value = value.strip() issues = value.split('\n- ') for i, _ in enumerate(issues): issues[i] = issues[i].strip().strip('-').strip() issues = unique_strings(issues) # remove duplicates - markdown_text += f"### {emoji} Key issues to review\n\n" + if gfm_supported: + markdown_text += f"\n" - # markdown_text += f"### {emoji} {key_nice}: {value}\n\n" + if gfm_supported: + markdown_text += f"\n" else: - # markdown_text += f"\n" - markdown_text += f"### {emoji} {key_nice}: {value}\n\n" + if gfm_supported: + markdown_text += f"\n" + else: + markdown_text += f"### {emoji} {key_nice}: {value}\n\n" + + if gfm_supported: + markdown_text += "
" + markdown_text += f"{emoji} {key_nice}: {value}" + markdown_text += f"
" + if is_value_no(value): + markdown_text += f"{emoji} No relevant tests" + else: + markdown_text += f"{emoji} PR contains tests" + markdown_text += f"
" + if is_value_no(value): + markdown_text += f"{emoji} No relevant tests" + else: + markdown_text += f"{emoji} PR contains tests" + else: + if is_value_no(value): + markdown_text += f'### {emoji} No relevant tests\n\n' + else: + markdown_text += f"### PR contains tests\n\n" elif 'security concerns' in key_nice.lower(): - if is_value_no(value): - markdown_text += f'### {emoji} No security concerns identified\n\n' + if gfm_supported: + markdown_text += f"
" + if is_value_no(value): + markdown_text += f"{emoji} No security concerns identified" + else: + markdown_text += f"{emoji} Security concerns" + value = emphasize_header(value.strip()) + markdown_text += f"{value}" + markdown_text += f"
" markdown_text += process_can_be_split(emoji, value) + markdown_text += f"
" + markdown_text += f"{emoji} {key_nice}

\n\n" + else: + markdown_text += f"### {emoji} Key issues to review\n\n" for i, issue in enumerate(issues): if not issue: continue issue = emphasize_header(issue, only_markdown=True) markdown_text += f"{issue}\n\n" - # else: - # value = emphasize_header(value.strip('-').strip()) - # # value = replace_code_tags(value) - # # markdown_text += f"
{emoji} {key_nice}\n{value}\n\n
{emoji} {key_nice}\n{value}\n\n
" + markdown_text += f"{emoji} {key_nice}: {value}" + markdown_text += f"
\n" if 'code_feedback' in output_data: if gfm_supported: @@ -280,9 +323,10 @@ def process_can_be_split(emoji, value): if not value or isinstance(value, list) and len(value) == 1: value = "No" # markdown_text += f" {emoji} {key_nice}\n\n{value}\n\n\n" - markdown_text += f"### {emoji} No multiple PR themes\n\n" + # markdown_text += f"### {emoji} No multiple PR themes\n\n" + markdown_text += f"{emoji} No multiple PR themes<\n\n" else: - markdown_text += f"### {emoji} {key_nice}\n\n" + markdown_text += f"{emoji} {key_nice}

\n\n" for i, split in enumerate(value): title = split.get('title', '') relevant_files = split.get('relevant_files', [])