From 1254ad1727f6bed23abada389385cf68d5f718d6 Mon Sep 17 00:00:00 2001 From: Nikolay Telepenin Date: Fri, 1 Sep 2023 13:56:17 +0100 Subject: [PATCH] Gerrit: - support reflect/answer --- pr_agent/git_providers/gerrit_provider.py | 7 ------- pr_agent/servers/gerrit_server.py | 19 ++++++++----------- 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/pr_agent/git_providers/gerrit_provider.py b/pr_agent/git_providers/gerrit_provider.py index d2a80a65..00f91afe 100644 --- a/pr_agent/git_providers/gerrit_provider.py +++ b/pr_agent/git_providers/gerrit_provider.py @@ -197,13 +197,6 @@ class GerritProvider(GitProvider): return self.repo.branches[0].name def get_issue_comments(self): - # raise NotImplementedError( - # 'Getting comments is not implemented for the gerrit provider' - # ) - # unclear how to get right comments from gerrit - # all user's comments like this "'Patch Set 1: (1 comment)'" - # i.e. it's not clear how to get the comment body - comments = list_comments(self.parsed_url, self.refspec) Comments = namedtuple('Comments', ['reversed']) Comment = namedtuple('Comment', ['body']) diff --git a/pr_agent/servers/gerrit_server.py b/pr_agent/servers/gerrit_server.py index 07ead55a..9bb6f16b 100644 --- a/pr_agent/servers/gerrit_server.py +++ b/pr_agent/servers/gerrit_server.py @@ -23,12 +23,14 @@ class Action(str, Enum): describe = "describe" ask = "ask" improve = "improve" + reflect = "reflect" + answer = "answer" class Item(BaseModel): refspec: str project: str - msg: str = None + msg: str = "" @router.post("/api/v1/gerrit/{action}") @@ -36,21 +38,16 @@ async def handle_gerrit_request(action: Action, item: Item): logging.debug("Received a Gerrit request") context["settings"] = copy.deepcopy(global_settings) - agent = PRAgent() - pr_url = f"{item.project}:{item.refspec}" - if action == Action.review: - await agent.handle_request(pr_url, "/review") - elif action == Action.describe: - await agent.handle_request(pr_url, "/describe") - elif action == Action.improve: - await agent.handle_request(pr_url, "/improve") - elif action == Action.ask: + if action == Action.ask: if not item.msg: return HTTPException( status_code=400, detail="msg is required for ask command" ) - await agent.handle_request(pr_url, f"/ask {item.msg.strip()}") + await PRAgent().handle_request( + f"{item.project}:{item.refspec}", + f"/{action.value} {item.msg.strip()}" + ) async def get_body(request):