From 0c2f09fb234fd6826bfa15bc825ea7f2f00453c6 Mon Sep 17 00:00:00 2001 From: cyclop-bot <178948048+cyclop-bot@users.noreply.github.com> Date: Mon, 2 Jun 2025 14:14:28 -0500 Subject: [PATCH] feat: add get_pull_request_general_comments to github_tool --- tools/github_tool.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tools/github_tool.py b/tools/github_tool.py index 397d88c..a14a063 100644 --- a/tools/github_tool.py +++ b/tools/github_tool.py @@ -372,6 +372,20 @@ class GitHubTool(BaseTool): } } }, + { # New function definition for get_pull_request_general_comments + "type": "function", + "function": { + "name": "get_pull_request_general_comments", + "description": "Get general comments posted on a pull request itself (not specific to file lines).", + "parameters": { + "type": "object", + "properties": { + "pull_number": {"type": "integer", "description": "The number of the pull request."} + }, + "required": ["pull_number"] + } + } + }, { "type": "function", "function": { @@ -617,6 +631,8 @@ class GitHubTool(BaseTool): return self._add_issue_comment(kwargs["issue_number"], kwargs["comment"]) elif function_name == "get_issue_comments": return self._get_issue_comments(kwargs["issue_number"]) + elif function_name == "get_pull_request_general_comments": # New dispatch entry + return self._get_pull_request_general_comments(kwargs["pull_number"]) elif function_name == "create_project_board": return self._create_project_board(kwargs["name"], kwargs.get("body", "")) elif function_name == "create_project_column": @@ -1036,6 +1052,14 @@ class GitHubTool(BaseTool): self.logger.error(error_message) return error_message + # New method for PR general comments + @metrics.measure + def _get_pull_request_general_comments(self, pull_number): + self.logger.info(f"Getting general comments for pull request: {pull_number}") + # Pull request comments are treated as issue comments in the GitHub API + # Re-use the existing _get_issue_comments method + return self._get_issue_comments(issue_number=pull_number) + @metrics.measure def _create_project_board(self, name, body=None): url = f"{self.base_url}/repos/{self.repo}/projects"