@cryptotaxi247 / CoPilot / commits / 749610cb

precommit-fixes (#549)

taylor_socfortress committed Dec 3, 2025 at 20:23 UTC 749610cbef90fcb7df15d725d183dfcd3a87971b
4 files changed +22 -17
backend/app/version/routes/version.py
+4 -6
@@ -1,15 +1,13 @@
1 from fastapi import APIRouter
2 +from loguru import logger
3 +
4 from app.version.schema.version import VersionCheckResponse
5 from app.version.services.version import check_version_outdated
4 -from loguru import logger
6
7 version_router = APIRouter()
8
8 -@version_router.get(
9 - "/check",
10 - response_model=VersionCheckResponse,
11 - description="Check if CoPilot version is up to date"
12 -)
9 +
10 +@version_router.get("/check", response_model=VersionCheckResponse, description="Check if CoPilot version is up to date")
11 async def check_version() -> VersionCheckResponse:
12 """
13 Check if the current CoPilot version is outdated.
backend/app/version/schema/version.py
+5 -3
@@ -1,6 +1,8 @@
1 -from pydantic import BaseModel
1 from typing import Optional
2
3 +from pydantic import BaseModel
4 +
5 +
6 class VersionCheckResponse(BaseModel):
7 success: bool
8 message: str
@@ -21,6 +23,6 @@ class VersionCheckResponse(BaseModel):
23 "is_outdated": True,
24 "release_url": "https://github.com/socfortress/CoPilot/releases/tag/v0.1.5",
25 "release_notes": "## What's Changed\n* Feature 1\n* Feature 2",
24 - "published_at": "2025-12-03T18:48:20Z"
25 - }
26 + "published_at": "2025-12-03T18:48:20Z",
27 + },
28 }
backend/app/version/services/version.py
+12 -7
@@ -1,12 +1,16 @@
1 -from packaging.version import Version
2 -from loguru import logger
1 +from typing import Any
2 +from typing import Dict
3 +from typing import Optional
4 +
5 import httpx
4 -from typing import Optional, Dict, Any
6 +from loguru import logger
7 +from packaging.version import Version
8
9 # Current version - update this with each release
10 CURRENT_VERSION = "0.1.5"
11 VERSION_CHECK_URL = "https://api.github.com/repos/socfortress/CoPilot/releases/latest"
12
13 +
14 async def get_latest_version() -> Optional[Dict[str, Any]]:
15 """
16 Fetch the latest version from GitHub releases
@@ -24,12 +28,13 @@ async def get_latest_version() -> Optional[Dict[str, Any]]:
28 "html_url": data.get("html_url", ""),
29 "published_at": data.get("published_at", ""),
30 "body": data.get("body", ""),
27 - "name": data.get("name", "").lstrip("v")
31 + "name": data.get("name", "").lstrip("v"),
32 }
33 except Exception as e:
34 logger.warning(f"Failed to fetch latest version: {e}")
35 return None
36
37 +
38 async def check_version_outdated() -> dict:
39 """
40 Check if current version is outdated
@@ -48,7 +53,7 @@ async def check_version_outdated() -> dict:
53 "is_outdated": False,
54 "release_url": None,
55 "release_notes": None,
51 - "published_at": None
56 + "published_at": None,
57 }
58
59 latest_version = release_info.get("tag_name")
@@ -66,7 +71,7 @@ async def check_version_outdated() -> dict:
71 "is_outdated": is_outdated,
72 "release_url": release_info.get("html_url"),
73 "release_notes": release_info.get("body"),
69 - "published_at": release_info.get("published_at")
74 + "published_at": release_info.get("published_at"),
75 }
76 except Exception as e:
77 logger.error(f"Error comparing versions: {e}")
@@ -78,5 +83,5 @@ async def check_version_outdated() -> dict:
83 "is_outdated": False,
84 "release_url": release_info.get("html_url"),
85 "release_notes": None,
81 - "published_at": None
86 + "published_at": None,
87 }
backend/copilot.py
+1 -1
@@ -66,7 +66,6 @@ from app.routers import monitoring_alert
66 from app.routers import network_connectors
67 from app.routers import nuclei
68 from app.routers import office365
69 -from app.routers import version
69 from app.routers import portainer
70 from app.routers import sap_siem
71 from app.routers import scheduler
@@ -77,6 +76,7 @@ from app.routers import stack_provisioning
76 from app.routers import sublime
77 from app.routers import threat_intel
78 from app.routers import velociraptor
79 +from app.routers import version
80 from app.routers import wazuh_indexer
81 from app.routers import wazuh_manager
82 from app.schedulers.scheduler import get_scheduler_instance