mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-07-01 19:30:40 +08:00
refactor: split serverless handlers into dedicated GitHub and GitLab Lambda entrypoints
This commit is contained in:
@ -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
|
||||
|
@ -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)
|
27
pr_agent/servers/gitlab_lambda_webhook.py
Normal file
27
pr_agent/servers/gitlab_lambda_webhook.py
Normal file
@ -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)
|
Reference in New Issue
Block a user