feat: latest release check api

This commit is contained in:
Timothy J. Baek 2024-02-25 11:26:58 -08:00
parent b82ac66c70
commit 6bfe2a6306

View File

@ -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")