Skip to main content
Glama

MCP Atlassian

by uchinx
MIT License
  • Apple
  • Linux
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/uchinx/mcp-atlassian'

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