mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-07-04 12:50:38 +08:00
add analytics support
This commit is contained in:
@ -1,5 +1,6 @@
|
|||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
|
import os
|
||||||
import sys
|
import sys
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
|
||||||
@ -39,8 +40,10 @@ def setup_logger(level: str = "INFO", fmt: LoggingFormat = LoggingFormat.CONSOLE
|
|||||||
logger.remove(None)
|
logger.remove(None)
|
||||||
logger.add(sys.stdout, level=level, colorize=True)
|
logger.add(sys.stdout, level=level, colorize=True)
|
||||||
|
|
||||||
log_file = get_settings().get("CONFIG.ANALYTICS_FILE", "")
|
log_folder = get_settings().get("CONFIG.ANALYTICS_FOLDER", "")
|
||||||
if log_file:
|
if log_folder:
|
||||||
|
pid = os.getpid()
|
||||||
|
log_file = os.path.join(log_folder, f"pr-agent.{pid}.log")
|
||||||
logger.add(
|
logger.add(
|
||||||
log_file,
|
log_file,
|
||||||
filter=analytics_filter,
|
filter=analytics_filter,
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
|
/import asyncio.locks
|
||||||
import copy
|
import copy
|
||||||
import os
|
import os
|
||||||
import asyncio.locks
|
|
||||||
import re
|
import re
|
||||||
|
import uuid
|
||||||
from typing import Any, Dict, List, Tuple
|
from typing import Any, Dict, List, Tuple
|
||||||
|
|
||||||
import uvicorn
|
import uvicorn
|
||||||
@ -14,10 +15,10 @@ from pr_agent.agent.pr_agent import PRAgent
|
|||||||
from pr_agent.algo.utils import update_settings_from_args
|
from pr_agent.algo.utils import update_settings_from_args
|
||||||
from pr_agent.config_loader import get_settings, global_settings
|
from pr_agent.config_loader import get_settings, global_settings
|
||||||
from pr_agent.git_providers import get_git_provider
|
from pr_agent.git_providers import get_git_provider
|
||||||
from pr_agent.git_providers.utils import apply_repo_settings
|
|
||||||
from pr_agent.git_providers.git_provider import IncrementalPR
|
from pr_agent.git_providers.git_provider import IncrementalPR
|
||||||
|
from pr_agent.git_providers.utils import apply_repo_settings
|
||||||
from pr_agent.log import LoggingFormat, get_logger, setup_logger
|
from pr_agent.log import LoggingFormat, get_logger, setup_logger
|
||||||
from pr_agent.servers.utils import verify_signature, DefaultDictWithTimeout
|
from pr_agent.servers.utils import DefaultDictWithTimeout, verify_signature
|
||||||
|
|
||||||
setup_logger(fmt=LoggingFormat.JSON)
|
setup_logger(fmt=LoggingFormat.JSON)
|
||||||
|
|
||||||
@ -204,7 +205,8 @@ async def handle_request(body: Dict[str, Any], event: str):
|
|||||||
return {}
|
return {}
|
||||||
agent = PRAgent()
|
agent = PRAgent()
|
||||||
sender = body.get("sender", {}).get("login")
|
sender = body.get("sender", {}).get("login")
|
||||||
log_context = {"action": action, "event": event, "sender": sender, "server_type": "github_app"}
|
log_context = {"action": action, "event": event, "sender": sender, "server_type": "github_app",
|
||||||
|
"request_id": uuid.uuid4().hex}
|
||||||
|
|
||||||
# handle comments on PRs
|
# handle comments on PRs
|
||||||
if action == 'created':
|
if action == 'created':
|
||||||
|
Reference in New Issue
Block a user