diff --git a/docker/Dockerfile.lambda b/docker/Dockerfile.lambda index 38dc9d25..7ac6879a 100644 --- a/docker/Dockerfile.lambda +++ b/docker/Dockerfile.lambda @@ -10,9 +10,9 @@ RUN pip install --no-cache-dir mangum==0.17.0 COPY pr_agent/ ${LAMBDA_TASK_ROOT}/pr_agent/ FROM base AS github_lambda -CMD ["pr_agent.servers.serverless.serverless_github"] +CMD ["pr_agent.servers.github_lambda_webhook.lambda_handler"] FROM base AS gitlab_lambda -CMD ["pr_agent.servers.serverless.serverless_gitlab"] +CMD ["pr_agent.servers.gitlab_lambda_webhook.lambda_handler"] FROM github_lambda diff --git a/pr_agent/servers/serverless.py b/pr_agent/servers/github_lambda_webhook.py similarity index 51% rename from pr_agent/servers/serverless.py rename to pr_agent/servers/github_lambda_webhook.py index 7deb9882..57b5df56 100644 --- a/pr_agent/servers/serverless.py +++ b/pr_agent/servers/github_lambda_webhook.py @@ -3,6 +3,8 @@ from mangum import Mangum from starlette.middleware import Middleware from starlette_context.middleware import RawContextMiddleware +from pr_agent.servers.github_app import router + try: from pr_agent.config_loader import apply_secrets_manager_config apply_secrets_manager_config() @@ -14,18 +16,12 @@ except Exception as e: # Fail completely silently if log module is not available pass -def _create_handler(router): - middleware = [Middleware(RawContextMiddleware)] - app = FastAPI(middleware=middleware) - app.include_router(router) - return Mangum(app, lifespan="off") +middleware = [Middleware(RawContextMiddleware)] +app = FastAPI(middleware=middleware) +app.include_router(router) -def serverless_github(event, context): - from pr_agent.servers.github_app import router - handler = _create_handler(router) - return handler(event, context) +handler = Mangum(app, lifespan="off") -def serverless_gitlab(event, context): - from pr_agent.servers.gitlab_webhook import router - handler = _create_handler(router) - return handler(event, context) + +def lambda_handler(event, context): + return handler(event, context) \ No newline at end of file diff --git a/pr_agent/servers/gitlab_lambda_webhook.py b/pr_agent/servers/gitlab_lambda_webhook.py new file mode 100644 index 00000000..30ca3426 --- /dev/null +++ b/pr_agent/servers/gitlab_lambda_webhook.py @@ -0,0 +1,27 @@ +from fastapi import FastAPI +from mangum import Mangum +from starlette.middleware import Middleware +from starlette_context.middleware import RawContextMiddleware + +from pr_agent.servers.gitlab_webhook import router + +try: + from pr_agent.config_loader import apply_secrets_manager_config + apply_secrets_manager_config() +except Exception as e: + try: + from pr_agent.log import get_logger + get_logger().debug(f"AWS Secrets Manager initialization failed, falling back to environment variables: {e}") + except: + # Fail completely silently if log module is not available + pass + +middleware = [Middleware(RawContextMiddleware)] +app = FastAPI(middleware=middleware) +app.include_router(router) + +handler = Mangum(app, lifespan="off") + + +def lambda_handler(event, context): + return handler(event, context) \ No newline at end of file