mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-07-03 12:20:38 +08:00
Refactor reaction handling in GitHub provider and update help text in PR tools
This commit is contained in:
@ -347,7 +347,7 @@ class AzureDevopsProvider(GitProvider):
|
|||||||
def publish_description(self, pr_title: str, pr_body: str):
|
def publish_description(self, pr_title: str, pr_body: str):
|
||||||
if len(pr_body) > MAX_PR_DESCRIPTION_AZURE_LENGTH:
|
if len(pr_body) > MAX_PR_DESCRIPTION_AZURE_LENGTH:
|
||||||
|
|
||||||
usage_guide_text='<details> <summary><strong>✨ Usage guide:</strong></summary><hr>'
|
usage_guide_text='<details> <summary><strong>✨ Describe tool usage guide:</strong></summary><hr>'
|
||||||
ind = pr_body.find(usage_guide_text)
|
ind = pr_body.find(usage_guide_text)
|
||||||
if ind != -1:
|
if ind != -1:
|
||||||
pr_body = pr_body[:ind]
|
pr_body = pr_body[:ind]
|
||||||
|
@ -455,29 +455,28 @@ class GithubProvider(GitProvider):
|
|||||||
def add_eyes_reaction(self, issue_comment_id: int, disable_eyes: bool = False) -> Optional[int]:
|
def add_eyes_reaction(self, issue_comment_id: int, disable_eyes: bool = False) -> Optional[int]:
|
||||||
if disable_eyes:
|
if disable_eyes:
|
||||||
return None
|
return None
|
||||||
try:
|
|
||||||
reaction = self.pr.get_issue_comment(issue_comment_id).create_reaction("eyes")
|
|
||||||
return reaction.id
|
|
||||||
except Exception as e:
|
|
||||||
get_logger().exception(f"Failed to add eyes reaction, error: {e}")
|
|
||||||
try:
|
try:
|
||||||
headers, data_patch = self.pr._requester.requestJsonAndCheck(
|
headers, data_patch = self.pr._requester.requestJsonAndCheck(
|
||||||
"POST", f"https://api.github.com/repos/{self.repo}/pulls/comments/{issue_comment_id}/reactions",
|
"POST", f"https://api.github.com/repos/{self.repo}/issues/comments/{issue_comment_id}/reactions",
|
||||||
input={"content": "eyes"}
|
input={"content": "eyes"}
|
||||||
)
|
)
|
||||||
except:
|
return data_patch.get("id", None)
|
||||||
pass
|
except Exception as e:
|
||||||
|
get_logger().exception(f"Failed to add eyes reaction, error: {e}")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def remove_reaction(self, issue_comment_id: int, reaction_id: int) -> bool:
|
def remove_reaction(self, issue_comment_id: int, reaction_id: str) -> bool:
|
||||||
try:
|
try:
|
||||||
self.pr.get_issue_comment(issue_comment_id).delete_reaction(reaction_id)
|
# self.pr.get_issue_comment(issue_comment_id).delete_reaction(reaction_id)
|
||||||
|
headers, data_patch = self.pr._requester.requestJsonAndCheck(
|
||||||
|
"DELETE",
|
||||||
|
f"https://api.github.com/repos/{self.repo}/issues/comments/{issue_comment_id}/reactions/{reaction_id}"
|
||||||
|
)
|
||||||
return True
|
return True
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
get_logger().exception(f"Failed to remove eyes reaction, error: {e}")
|
get_logger().exception(f"Failed to remove eyes reaction, error: {e}")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _parse_pr_url(pr_url: str) -> Tuple[str, int]:
|
def _parse_pr_url(pr_url: str) -> Tuple[str, int]:
|
||||||
parsed_url = urlparse(pr_url)
|
parsed_url = urlparse(pr_url)
|
||||||
|
@ -107,7 +107,7 @@ class PRCodeSuggestions:
|
|||||||
|
|
||||||
# add usage guide
|
# add usage guide
|
||||||
if get_settings().pr_code_suggestions.enable_help_text:
|
if get_settings().pr_code_suggestions.enable_help_text:
|
||||||
pr_body += "<hr>\n\n<details> <summary><strong>✨ Usage guide:</strong></summary><hr> \n\n"
|
pr_body += "<hr>\n\n<details> <summary><strong>✨ Improve tool usage guide:</strong></summary><hr> \n\n"
|
||||||
pr_body += HelpMessage.get_improve_usage_guide()
|
pr_body += HelpMessage.get_improve_usage_guide()
|
||||||
pr_body += "\n</details>\n"
|
pr_body += "\n</details>\n"
|
||||||
|
|
||||||
|
@ -103,7 +103,7 @@ class PRDescription:
|
|||||||
|
|
||||||
# Add help text if gfm_markdown is supported
|
# Add help text if gfm_markdown is supported
|
||||||
if self.git_provider.is_supported("gfm_markdown") and get_settings().pr_description.enable_help_text:
|
if self.git_provider.is_supported("gfm_markdown") and get_settings().pr_description.enable_help_text:
|
||||||
pr_body += "<hr>\n\n<details> <summary><strong>✨ Usage guide:</strong></summary><hr> \n\n"
|
pr_body += "<hr>\n\n<details> <summary><strong>✨ Describe tool usage guide:</strong></summary><hr> \n\n"
|
||||||
pr_body += HelpMessage.get_describe_usage_guide()
|
pr_body += HelpMessage.get_describe_usage_guide()
|
||||||
pr_body += "\n</details>\n"
|
pr_body += "\n</details>\n"
|
||||||
elif get_settings().pr_description.enable_help_comment:
|
elif get_settings().pr_description.enable_help_comment:
|
||||||
|
@ -54,7 +54,7 @@ class PRQuestions:
|
|||||||
get_logger().info('Preparing answer...')
|
get_logger().info('Preparing answer...')
|
||||||
pr_comment = self._prepare_pr_answer()
|
pr_comment = self._prepare_pr_answer()
|
||||||
if self.git_provider.is_supported("gfm_markdown") and get_settings().pr_questions.enable_help_text:
|
if self.git_provider.is_supported("gfm_markdown") and get_settings().pr_questions.enable_help_text:
|
||||||
pr_comment += "<hr>\n\n<details> <summary><strong>✨ Usage guide:</strong></summary><hr> \n\n"
|
pr_comment += "<hr>\n\n<details> <summary><strong>✨ Ask tool usage guide:</strong></summary><hr> \n\n"
|
||||||
pr_comment += HelpMessage.get_ask_usage_guide()
|
pr_comment += HelpMessage.get_ask_usage_guide()
|
||||||
pr_comment += "\n</details>\n"
|
pr_comment += "\n</details>\n"
|
||||||
|
|
||||||
|
@ -238,7 +238,7 @@ class PRReviewer:
|
|||||||
|
|
||||||
# Add help text if gfm_markdown is supported
|
# Add help text if gfm_markdown is supported
|
||||||
if self.git_provider.is_supported("gfm_markdown") and get_settings().pr_reviewer.enable_help_text:
|
if self.git_provider.is_supported("gfm_markdown") and get_settings().pr_reviewer.enable_help_text:
|
||||||
markdown_text += "<hr>\n\n<details> <summary><strong>✨ Usage guide:</strong></summary><hr> \n\n"
|
markdown_text += "<hr>\n\n<details> <summary><strong>✨ Review tool usage guide:</strong></summary><hr> \n\n"
|
||||||
markdown_text += HelpMessage.get_review_usage_guide()
|
markdown_text += HelpMessage.get_review_usage_guide()
|
||||||
markdown_text += "\n</details>\n"
|
markdown_text += "\n</details>\n"
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user