We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sooperset/mcp-atlassian'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
"""
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