mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-07-02 03:40:38 +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/
|
COPY pr_agent/ ${LAMBDA_TASK_ROOT}/pr_agent/
|
||||||
|
|
||||||
FROM base AS github_lambda
|
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
|
FROM base AS gitlab_lambda
|
||||||
CMD ["pr_agent.servers.serverless.serverless_gitlab"]
|
CMD ["pr_agent.servers.gitlab_lambda_webhook.lambda_handler"]
|
||||||
|
|
||||||
FROM github_lambda
|
FROM github_lambda
|
||||||
|
@ -3,6 +3,8 @@ from mangum import Mangum
|
|||||||
from starlette.middleware import Middleware
|
from starlette.middleware import Middleware
|
||||||
from starlette_context.middleware import RawContextMiddleware
|
from starlette_context.middleware import RawContextMiddleware
|
||||||
|
|
||||||
|
from pr_agent.servers.github_app import router
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from pr_agent.config_loader import apply_secrets_manager_config
|
from pr_agent.config_loader import apply_secrets_manager_config
|
||||||
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
|
# Fail completely silently if log module is not available
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def _create_handler(router):
|
|
||||||
middleware = [Middleware(RawContextMiddleware)]
|
middleware = [Middleware(RawContextMiddleware)]
|
||||||
app = FastAPI(middleware=middleware)
|
app = FastAPI(middleware=middleware)
|
||||||
app.include_router(router)
|
app.include_router(router)
|
||||||
return Mangum(app, lifespan="off")
|
|
||||||
|
|
||||||
def serverless_github(event, context):
|
handler = Mangum(app, lifespan="off")
|
||||||
from pr_agent.servers.github_app import router
|
|
||||||
handler = _create_handler(router)
|
|
||||||
return handler(event, context)
|
|
||||||
|
|
||||||
def serverless_gitlab(event, context):
|
|
||||||
from pr_agent.servers.gitlab_webhook import router
|
def lambda_handler(event, context):
|
||||||
handler = _create_handler(router)
|
|
||||||
return 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