2023-07-06 00:21:08 +03:00
|
|
|
import re
|
|
|
|
|
|
|
|
from pr_agent.tools.pr_questions import PRQuestions
|
|
|
|
from pr_agent.tools.pr_reviewer import PRReviewer
|
|
|
|
|
|
|
|
|
|
|
|
class PRAgent:
|
2023-07-08 08:52:11 +03:00
|
|
|
def __init__(self):
|
|
|
|
pass
|
2023-07-06 00:21:08 +03:00
|
|
|
|
|
|
|
async def handle_request(self, pr_url, request):
|
2023-07-06 12:58:05 +03:00
|
|
|
if 'please review' in request.lower() or 'review' == request.lower().strip() or len(request) == 0:
|
2023-07-08 08:52:11 +03:00
|
|
|
reviewer = PRReviewer(pr_url)
|
2023-07-06 00:21:08 +03:00
|
|
|
await reviewer.review()
|
|
|
|
|
2023-07-06 12:58:05 +03:00
|
|
|
else:
|
|
|
|
if "please answer" in request.lower():
|
|
|
|
question = re.split(r'(?i)please answer', request)[1].strip()
|
|
|
|
elif request.lower().strip().startswith("answer"):
|
|
|
|
question = re.split(r'(?i)answer', request)[1].strip()
|
|
|
|
else:
|
|
|
|
question = request
|
2023-07-08 08:52:11 +03:00
|
|
|
answerer = PRQuestions(pr_url, question)
|
2023-07-06 00:21:08 +03:00
|
|
|
await answerer.answer()
|