Forráskód Böngészése

feat: latest release check api

Timothy J. Baek 1 éve
szülő
commit
6bfe2a6306
1 módosított fájl, 25 hozzáadás és 1 törlés
  1. 25 1
      backend/main.py

+ 25 - 1
backend/main.py

@@ -4,8 +4,9 @@ import markdown
 import time
 import os
 import sys
+import requests
 
-from fastapi import FastAPI, Request, Depends
+from fastapi import FastAPI, Request, Depends, status
 from fastapi.staticfiles import StaticFiles
 from fastapi import HTTPException
 from fastapi.responses import JSONResponse
@@ -26,6 +27,8 @@ from apps.web.main import app as webui_app
 
 
 from config import WEBUI_NAME, ENV, VERSION, CHANGELOG, FRONTEND_BUILD_DIR
+from constants import ERROR_MESSAGES
+
 from utils.utils import get_http_authorization_cred, get_current_user
 
 
@@ -127,6 +130,27 @@ async def get_app_changelog():
     return CHANGELOG
 
 
+@app.get("/api/version/updates")
+async def get_app_latest_release_version():
+    try:
+        response = requests.get(
+            f"https://api.github.com/repos/open-webui/open-webui/releases/latest"
+        )
+        response.raise_for_status()
+        latest_version = response.json()["tag_name"]
+
+        # Compare versions
+        return {
+            "current": VERSION,
+            "latest": latest_version[1:],
+        }
+    except Exception as e:
+        raise HTTPException(
+            status_code=status.HTTP_503_SERVICE_UNAVAILABLE,
+            detail=ERROR_MESSAGES.NOT_FOUND,
+        )
+
+
 app.mount("/static", StaticFiles(directory="static"), name="static")