mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-12-12 02:45:18 +00:00
feat: add eyes reacrtion to gitlab provider
This commit is contained in:
parent
179fef796d
commit
755165e90c
1 changed files with 43 additions and 2 deletions
|
|
@ -560,11 +560,52 @@ class GitLabProvider(GitProvider):
|
||||||
def get_workspace_name(self):
|
def get_workspace_name(self):
|
||||||
return self.id_project.split('/')[0]
|
return self.id_project.split('/')[0]
|
||||||
|
|
||||||
|
|
||||||
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]:
|
||||||
return True
|
if disable_eyes:
|
||||||
|
return None
|
||||||
|
try:
|
||||||
|
if not self.id_mr:
|
||||||
|
get_logger().warning("Cannot add eyes reaction: merge request ID is not set.")
|
||||||
|
return None
|
||||||
|
|
||||||
|
mr = self.gl.projects.get(self.id_project).mergerequests.get(self.id_mr)
|
||||||
|
comment = mr.notes.get(issue_comment_id)
|
||||||
|
|
||||||
|
if not comment:
|
||||||
|
get_logger().warning(f"Comment with ID {issue_comment_id} not found in merge request {self.id_mr}.")
|
||||||
|
return None
|
||||||
|
|
||||||
|
return comment.awardemojis.create({
|
||||||
|
'name': 'eyes'
|
||||||
|
}).get_id()
|
||||||
|
except Exception as e:
|
||||||
|
get_logger().warning(f"Failed to add eyes reaction, error: {e}")
|
||||||
|
return None
|
||||||
|
|
||||||
def remove_reaction(self, issue_comment_id: int, reaction_id: int) -> bool:
|
def remove_reaction(self, issue_comment_id: int, reaction_id: int) -> bool:
|
||||||
|
try:
|
||||||
|
if not self.id_mr:
|
||||||
|
get_logger().warning("Cannot remove reaction: merge request ID is not set.")
|
||||||
|
return False
|
||||||
|
|
||||||
|
mr = self.gl.projects.get(self.id_project).mergerequests.get(self.id_mr)
|
||||||
|
comment = mr.notes.get(issue_comment_id)
|
||||||
|
|
||||||
|
if not comment:
|
||||||
|
get_logger().warning(f"Comment with ID {issue_comment_id} not found in merge request {self.id_mr}.")
|
||||||
|
return False
|
||||||
|
|
||||||
|
reaction = comment.awardemojis.get(reaction_id)
|
||||||
|
if reaction:
|
||||||
|
reaction.delete()
|
||||||
return True
|
return True
|
||||||
|
else:
|
||||||
|
get_logger().warning(f"Reaction with ID {reaction_id} not found in comment {issue_comment_id}.")
|
||||||
|
return False
|
||||||
|
except Exception as e:
|
||||||
|
get_logger().warning(f"Failed to remove reaction, error: {e}")
|
||||||
|
return False
|
||||||
|
|
||||||
def _parse_merge_request_url(self, merge_request_url: str) -> Tuple[str, int]:
|
def _parse_merge_request_url(self, merge_request_url: str) -> Tuple[str, int]:
|
||||||
parsed_url = urlparse(merge_request_url)
|
parsed_url = urlparse(merge_request_url)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue