Skip to main content
Glama

MCP Atlassian

by ArconixForge
comment.py2.65 kB
""" Jira comment models. This module provides Pydantic models for Jira comments. """ import logging from typing import Any from ..base import ApiModel, TimestampMixin from ..constants import ( EMPTY_STRING, JIRA_DEFAULT_ID, ) from .common import JiraUser logger = logging.getLogger(__name__) class JiraComment(ApiModel, TimestampMixin): """ Model representing a Jira issue comment. """ id: str = JIRA_DEFAULT_ID body: str = EMPTY_STRING created: str = EMPTY_STRING updated: str = EMPTY_STRING author: JiraUser | None = None @classmethod def from_api_response(cls, data: dict[str, Any], **kwargs: Any) -> "JiraComment": """ Create a JiraComment from a Jira API response. Args: data: The comment data from the Jira API Returns: A JiraComment instance """ if not data: return cls() # Handle non-dictionary data by returning a default instance if not isinstance(data, dict): logger.debug("Received non-dictionary data, returning default instance") return cls() # Extract author data author = None author_data = data.get("author") if author_data: author = JiraUser.from_api_response(author_data) # Ensure ID is a string comment_id = data.get("id", JIRA_DEFAULT_ID) if comment_id is not None: comment_id = str(comment_id) # Get the body content body_content = EMPTY_STRING body = data.get("body") if isinstance(body, dict) and "content" in body: # Handle Atlassian Document Format (ADF) # This is a simplified conversion - a proper implementation would # parse the ADF structure body_content = str(body.get("content", EMPTY_STRING)) elif body: # Handle plain text or HTML content body_content = str(body) return cls( id=comment_id, body=body_content, created=str(data.get("created", EMPTY_STRING)), updated=str(data.get("updated", EMPTY_STRING)), author=author, ) def to_simplified_dict(self) -> dict[str, Any]: """Convert to simplified dictionary for API response.""" result = { "body": self.body, } if self.author: result["author"] = self.author.to_simplified_dict() if self.created: result["created"] = self.created if self.updated: result["updated"] = self.updated return result

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ArconixForge/mcp-atlassian'

If you have feedback or need assistance with the MCP directory API, please join our Discord server