Skip to content
This repository was archived by the owner on Jun 5, 2025. It is now read-only.

Commit de6ab5f

Browse files
author
Luke Hinds
authored
Merge pull request #567 from stacklok/uagent
Log User-agents from clients
2 parents c00dc18 + 40e5e28 commit de6ab5f

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

src/codegate/providers/copilot/provider.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,8 @@ def get_headers_dict(self, complete_request) -> Dict[str, str]:
243243
try:
244244
name, value = header.decode("utf-8").split(":", 1)
245245
headers_dict[name.strip().lower()] = value.strip()
246+
if name == "user-agent":
247+
logger.debug(f"User-Agent header received: {value} from {self.peername}")
246248
except ValueError:
247249
continue
248250

src/codegate/server.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import traceback
22

33
import structlog
4-
from fastapi import APIRouter, FastAPI
4+
from fastapi import APIRouter, FastAPI, Request
55
from fastapi.middleware.cors import CORSMiddleware
66
from fastapi.responses import JSONResponse
77
from starlette.middleware.errors import ServerErrorMiddleware
@@ -35,6 +35,15 @@ def init_app(pipeline_factory: PipelineFactory) -> FastAPI:
3535
description=__description__,
3636
version=__version__,
3737
)
38+
39+
@app.middleware("http")
40+
async def log_user_agent(request: Request, call_next):
41+
user_agent = request.headers.get("user-agent")
42+
client_host = request.client.host if request.client else "unknown"
43+
logger.debug(f"User-Agent header received: {user_agent} from {client_host}")
44+
response = await call_next(request)
45+
return response
46+
3847
app.add_middleware(
3948
CORSMiddleware,
4049
allow_origins=["*"],

0 commit comments

Comments
 (0)