mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-07-05 21:30:40 +08:00
Gitlab /ask line works
This commit is contained in:
@ -181,6 +181,11 @@ class GitLabProvider(GitProvider):
|
|||||||
def edit_comment(self, comment, body: str):
|
def edit_comment(self, comment, body: str):
|
||||||
self.mr.notes.update(comment.id,{'body': body} )
|
self.mr.notes.update(comment.id,{'body': body} )
|
||||||
|
|
||||||
|
def reply_to_comment_from_comment_id(self, comment_id: int, body: str):
|
||||||
|
discussion = self.mr.discussions.get(comment_id)
|
||||||
|
discussion.notes.create({'body': body})
|
||||||
|
self.mr.notes.create({'body': body, 'in_reply_to_discussion_id': comment_id})
|
||||||
|
|
||||||
def publish_inline_comment(self, body: str, relevant_file: str, relevant_line_in_file: str):
|
def publish_inline_comment(self, body: str, relevant_file: str, relevant_line_in_file: str):
|
||||||
edit_type, found, source_line_no, target_file, target_line_no = self.search_line(relevant_file,
|
edit_type, found, source_line_no, target_file, target_line_no = self.search_line(relevant_file,
|
||||||
relevant_line_in_file)
|
relevant_line_in_file)
|
||||||
|
@ -64,7 +64,25 @@ async def gitlab_webhook(background_tasks: BackgroundTasks, request: Request):
|
|||||||
mr = data['merge_request']
|
mr = data['merge_request']
|
||||||
url = mr.get('url')
|
url = mr.get('url')
|
||||||
body = data.get('object_attributes', {}).get('note')
|
body = data.get('object_attributes', {}).get('note')
|
||||||
|
if data.get('object_attributes', {}).get('type') == 'DiffNote' and '/ask' in body:
|
||||||
|
line_range_ = data['object_attributes']['position']['line_range']
|
||||||
|
|
||||||
|
# if line_range_['start']['type'] == 'new':
|
||||||
|
start_line = line_range_['start']['new_line']
|
||||||
|
end_line = line_range_['end']['new_line']
|
||||||
|
# else:
|
||||||
|
# start_line = line_range_['start']['old_line']
|
||||||
|
# end_line = line_range_['end']['old_line']
|
||||||
|
|
||||||
|
question = body.replace('/ask', '').strip()
|
||||||
|
path = data['object_attributes']['position']['new_path']
|
||||||
|
side = 'RIGHT'# if line_range_['start']['type'] == 'new' else 'LEFT'
|
||||||
|
comment_id = data['object_attributes']["discussion_id"]
|
||||||
|
get_logger().info(f"Handling line comment")
|
||||||
|
body = f"/ask_line --line_start={start_line} --line_end={end_line} --side={side} --file_name={path} --comment_id={comment_id} {question}"
|
||||||
|
|
||||||
handle_request(background_tasks, url, body, log_context)
|
handle_request(background_tasks, url, body, log_context)
|
||||||
|
|
||||||
return JSONResponse(status_code=status.HTTP_200_OK, content=jsonable_encoder({"message": "success"}))
|
return JSONResponse(status_code=status.HTTP_200_OK, content=jsonable_encoder({"message": "success"}))
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user