mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-07-04 04:40:38 +08:00
Merge pull request #1262 from Codium-ai/tr/prompt
style: refine field descriptions in KeyIssuesComponentLink model
This commit is contained in:
@ -100,8 +100,8 @@ def convert_to_markdown_v2(output_data: dict,
|
|||||||
|
|
||||||
emojis = {
|
emojis = {
|
||||||
"Can be split": "🔀",
|
"Can be split": "🔀",
|
||||||
"Possible issues": "⚡",
|
|
||||||
"Key issues to review": "⚡",
|
"Key issues to review": "⚡",
|
||||||
|
"Recommended focus areas for review": "⚡",
|
||||||
"Score": "🏅",
|
"Score": "🏅",
|
||||||
"Relevant tests": "🧪",
|
"Relevant tests": "🧪",
|
||||||
"Focused PR": "✨",
|
"Focused PR": "✨",
|
||||||
@ -192,23 +192,21 @@ def convert_to_markdown_v2(output_data: dict,
|
|||||||
if is_value_no(value):
|
if is_value_no(value):
|
||||||
if gfm_supported:
|
if gfm_supported:
|
||||||
markdown_text += f"<tr><td>"
|
markdown_text += f"<tr><td>"
|
||||||
markdown_text += f"{emoji} <strong>No key issues to review</strong>"
|
markdown_text += f"{emoji} <strong>No major issues detected</strong>"
|
||||||
markdown_text += f"</td></tr>\n"
|
markdown_text += f"</td></tr>\n"
|
||||||
else:
|
else:
|
||||||
markdown_text += f"### {emoji} No key issues to review\n\n"
|
markdown_text += f"### {emoji} No major issues detected\n\n"
|
||||||
else:
|
else:
|
||||||
# issues = value.split('\n- ')
|
issues = value
|
||||||
issues =value
|
|
||||||
# for i, _ in enumerate(issues):
|
|
||||||
# issues[i] = issues[i].strip().strip('-').strip()
|
|
||||||
if gfm_supported:
|
if gfm_supported:
|
||||||
markdown_text += f"<tr><td>"
|
markdown_text += f"<tr><td>"
|
||||||
markdown_text += f"{emoji} <strong>{key_nice}</strong><br><br>\n\n"
|
# markdown_text += f"{emoji} <strong>{key_nice}</strong><br><br>\n\n"
|
||||||
|
markdown_text += f"{emoji} <strong>Recommended focus areas for review</strong><br><br>\n\n"
|
||||||
else:
|
else:
|
||||||
markdown_text += f"### {emoji} Key issues to review\n\n#### \n"
|
markdown_text += f"### {emoji} Recommended focus areas for review\n\n#### \n"
|
||||||
for i, issue in enumerate(issues):
|
for i, issue in enumerate(issues):
|
||||||
try:
|
try:
|
||||||
if not issue:
|
if not issue or not isinstance(issue, dict):
|
||||||
continue
|
continue
|
||||||
relevant_file = issue.get('relevant_file', '').strip()
|
relevant_file = issue.get('relevant_file', '').strip()
|
||||||
issue_header = issue.get('issue_header', '').strip()
|
issue_header = issue.get('issue_header', '').strip()
|
||||||
@ -223,7 +221,7 @@ def convert_to_markdown_v2(output_data: dict,
|
|||||||
issue_str = f"[**{issue_header}**]({reference_link})\n\n{issue_content}\n\n"
|
issue_str = f"[**{issue_header}**]({reference_link})\n\n{issue_content}\n\n"
|
||||||
markdown_text += f"{issue_str}\n\n"
|
markdown_text += f"{issue_str}\n\n"
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
get_logger().exception(f"Failed to process key issues to review: {e}")
|
get_logger().exception(f"Failed to process 'Recommended focus areas for review': {e}")
|
||||||
if gfm_supported:
|
if gfm_supported:
|
||||||
markdown_text += f"</td></tr>\n"
|
markdown_text += f"</td></tr>\n"
|
||||||
else:
|
else:
|
||||||
|
@ -81,10 +81,10 @@ class SubPR(BaseModel):
|
|||||||
|
|
||||||
class KeyIssuesComponentLink(BaseModel):
|
class KeyIssuesComponentLink(BaseModel):
|
||||||
relevant_file: str = Field(description="The full file path of the relevant file")
|
relevant_file: str = Field(description="The full file path of the relevant file")
|
||||||
issue_header: str = Field(description="one or two word title for the the issue. For example: 'Possible Bug', 'Performance Issue', 'Code Smell', etc.")
|
issue_header: str = Field(description="One or two word title for the the issue. For example: 'Possible Bug', 'Performance Issue', 'Code Smell', etc.")
|
||||||
issue_content: str = Field(description="a short and concise description of the issue that needs to be reviewed")
|
issue_content: str = Field(description="A short and concise summary of what should be further inspected and validated during the PR review process for this issue. Don't state line numbers here")
|
||||||
start_line: int = Field(description="the start line that corresponds to this issue in the relevant file")
|
start_line: int = Field(description="The start line that corresponds to this issue in the relevant file")
|
||||||
end_line: int = Field(description="the end line that corresponds to this issue in the relevant file")
|
end_line: int = Field(description="The end line that corresponds to this issue in the relevant file")
|
||||||
|
|
||||||
class Review(BaseModel):
|
class Review(BaseModel):
|
||||||
{%- if require_estimate_effort_to_review %}
|
{%- if require_estimate_effort_to_review %}
|
||||||
|
@ -53,7 +53,7 @@ class TestConvertToMarkdown:
|
|||||||
'relevant_line': '[return ""](https://github.com/Codium-ai/pr-agent-pro/pull/102/files#diff-52d45f12b836f77ed1aef86e972e65404634ea4e2a6083fb71a9b0f9bb9e062fR199)'}]}
|
'relevant_line': '[return ""](https://github.com/Codium-ai/pr-agent-pro/pull/102/files#diff-52d45f12b836f77ed1aef86e972e65404634ea4e2a6083fb71a9b0f9bb9e062fR199)'}]}
|
||||||
|
|
||||||
|
|
||||||
expected_output = f'{PRReviewHeader.REGULAR.value} 🔍\n\nHere are some key observations to aid the review process:\n\n<table>\n<tr><td>⏱️ <strong>Estimated effort to review</strong>: 1 🔵⚪⚪⚪⚪</td></tr>\n<tr><td>🧪 <strong>No relevant tests</strong></td></tr>\n<tr><td>⚡ <strong>Possible issues</strong>: No\n</td></tr>\n<tr><td>🔒 <strong>No security concerns identified</strong></td></tr>\n</table>\n\n\n<details><summary> <strong>Code feedback:</strong></summary>\n\n<hr><table><tr><td>relevant file</td><td>pr_agent/git_providers/git_provider.py\n</td></tr><tr><td>suggestion </td><td>\n\n<strong>\n\nConsider raising an exception or logging a warning when \'pr_url\' attribute is not found. This can help in debugging issues related to the absence of \'pr_url\' in instances where it\'s expected. [important]\n\n</strong>\n</td></tr><tr><td>relevant line</td><td><a href=\'https://github.com/Codium-ai/pr-agent-pro/pull/102/files#diff-52d45f12b836f77ed1aef86e972e65404634ea4e2a6083fb71a9b0f9bb9e062fR199\'>return ""</a></td></tr></table><hr>\n\n</details>'
|
expected_output = f'{PRReviewHeader.REGULAR.value} 🔍\n\nHere are some key observations to aid the review process:\n\n<table>\n<tr><td>⏱️ <strong>Estimated effort to review</strong>: 1 🔵⚪⚪⚪⚪</td></tr>\n<tr><td>🧪 <strong>No relevant tests</strong></td></tr>\n<tr><td> <strong>Possible issues</strong>: No\n</td></tr>\n<tr><td>🔒 <strong>No security concerns identified</strong></td></tr>\n</table>\n\n\n<details><summary> <strong>Code feedback:</strong></summary>\n\n<hr><table><tr><td>relevant file</td><td>pr_agent/git_providers/git_provider.py\n</td></tr><tr><td>suggestion </td><td>\n\n<strong>\n\nConsider raising an exception or logging a warning when \'pr_url\' attribute is not found. This can help in debugging issues related to the absence of \'pr_url\' in instances where it\'s expected. [important]\n\n</strong>\n</td></tr><tr><td>relevant line</td><td><a href=\'https://github.com/Codium-ai/pr-agent-pro/pull/102/files#diff-52d45f12b836f77ed1aef86e972e65404634ea4e2a6083fb71a9b0f9bb9e062fR199\'>return ""</a></td></tr></table><hr>\n\n</details>'
|
||||||
|
|
||||||
assert convert_to_markdown_v2(input_data).strip() == expected_output.strip()
|
assert convert_to_markdown_v2(input_data).strip() == expected_output.strip()
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user