diff --git a/pr_agent/git_providers/gitlab_provider.py b/pr_agent/git_providers/gitlab_provider.py index e1e65b10..9ee1c0bf 100644 --- a/pr_agent/git_providers/gitlab_provider.py +++ b/pr_agent/git_providers/gitlab_provider.py @@ -37,7 +37,7 @@ class GitLabProvider(GitProvider): self.incremental = incremental def is_supported(self, capability: str) -> bool: - if capability in ['get_issue_comments', 'create_inline_comment', 'publish_inline_comments', 'get_labels']: + if capability in ['get_issue_comments', 'create_inline_comment', 'publish_inline_comments']: return False return True @@ -260,11 +260,15 @@ class GitLabProvider(GitProvider): def get_user_id(self): return None - def publish_labels(self, labels): - pass + def publish_labels(self, pr_types): + try: + self.mr.labels = list(set(pr_types)) + self.mr.save() + except Exception as e: + logging.exception(f"Failed to publish labels, error: {e}") def publish_inline_comments(self, comments: list[dict]): pass def get_labels(self): - pass + return self.mr.labels diff --git a/pr_agent/tools/pr_description.py b/pr_agent/tools/pr_description.py index 7a9bfb88..400cdd86 100644 --- a/pr_agent/tools/pr_description.py +++ b/pr_agent/tools/pr_description.py @@ -48,6 +48,8 @@ class PRDescription: self.git_provider.publish_description(pr_title, pr_body) if self.git_provider.is_supported("get_labels"): current_labels = self.git_provider.get_labels() + if current_labels is None: + current_labels = [] self.git_provider.publish_labels(pr_types + current_labels) self.git_provider.remove_initial_comment() return ""