"""Authentication and configuration management for Gitea MCP server.""" import os from typing import Optional from dotenv import load_dotenv class AuthConfig: """Manages authentication configuration for Gitea API.""" def __init__(self): """Initialize authentication configuration from environment variables.""" load_dotenv() self.api_url: Optional[str] = os.getenv("GITEA_API_URL") self.api_token: Optional[str] = os.getenv("GITEA_API_TOKEN") self._validate() def _validate(self) -> None: """Validate that required configuration is present. Raises: ValueError: If required environment variables are missing. """ if not self.api_url: raise ValueError( "GITEA_API_URL environment variable is required. " "Please set it in your .env file or environment." ) if not self.api_token: raise ValueError( "GITEA_API_TOKEN environment variable is required. " "Please set it in your .env file or environment." ) # Remove trailing slash from URL if present if self.api_url.endswith("/"): self.api_url = self.api_url[:-1] def get_auth_headers(self) -> dict[str, str]: """Get authentication headers for API requests. Returns: dict: HTTP headers with authorization token. """ return { "Authorization": f"token {self.api_token}", "Content-Type": "application/json", }