import logging from contextlib import asynccontextmanager from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from .api import router as api_router from .config import get_config logging.basicConfig( level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", ) @asynccontextmanager async def lifespan(app: FastAPI): config = get_config() logging.info(f"Starting LinearGiteaIntegration on {config.server.host}:{config.server.port}") yield app = FastAPI( title="LinearGiteaIntegration", description="Integrate Linear issue tracking with Gitea", version="0.1.0", lifespan=lifespan, ) app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) app.include_router(api_router) if __name__ == "__main__": import uvicorn config = get_config() uvicorn.run( "linear_gitea_integration.main:app", host=config.server.host, port=config.server.port, reload=True, )