From 68c8c70260efa3bbe4833b96a3ef69538e96b54c Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Sat, 21 Dec 2024 13:34:50 -0600 Subject: [PATCH 1/2] refactor: iterate pages --- packages/server/src/services/settings.ts | 32 +++++++++++++++--------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/packages/server/src/services/settings.ts b/packages/server/src/services/settings.ts index 0ab9744e..626d6af6 100644 --- a/packages/server/src/services/settings.ts +++ b/packages/server/src/services/settings.ts @@ -62,17 +62,26 @@ export const getUpdateData = async (): Promise => { return DEFAULT_UPDATE_DATA; } - const url = "https://hub.docker.com/v2/repositories/dokploy/dokploy/tags"; - const response = await fetch(url, { - method: "GET", - headers: { "Content-Type": "application/json" }, - }); + const baseUrl = "https://hub.docker.com/v2/repositories/dokploy/dokploy/tags"; + let url: string | null = `${baseUrl}?page_size=100`; + let allResults: { digest: string; name: string }[] = []; - const data = (await response.json()) as { - results: [{ digest: string; name: string }]; - }; - const { results } = data; - const latestTagDigest = results.find( + while (url) { + const response = await fetch(url, { + method: "GET", + headers: { "Content-Type": "application/json" }, + }); + + const data = (await response.json()) as { + next: string | null; + results: { digest: string; name: string }[]; + }; + + allResults = allResults.concat(data.results); + url = data?.next; + } + + const latestTagDigest = allResults.find( (t) => t.name === getDokployImageTag(), )?.digest; @@ -80,7 +89,7 @@ export const getUpdateData = async (): Promise => { return DEFAULT_UPDATE_DATA; } - const versionedTag = results.find( + const versionedTag = allResults.find( (t) => t.digest === latestTagDigest && t.name.startsWith("v"), ); @@ -89,7 +98,6 @@ export const getUpdateData = async (): Promise => { } const { name: latestVersion, digest } = versionedTag; - const updateAvailable = digest !== currentDigest; return { latestVersion, updateAvailable }; From a0c9df4bd414fe56a8d98ae7601ea7103dd78e95 Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Sat, 21 Dec 2024 13:35:17 -0600 Subject: [PATCH 2/2] refactor: add 7 minutes interval --- apps/dokploy/components/layouts/navbar.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dokploy/components/layouts/navbar.tsx b/apps/dokploy/components/layouts/navbar.tsx index 59d8d8c7..0e52d701 100644 --- a/apps/dokploy/components/layouts/navbar.tsx +++ b/apps/dokploy/components/layouts/navbar.tsx @@ -18,7 +18,7 @@ import { Logo } from "../shared/logo"; import { Avatar, AvatarFallback, AvatarImage } from "../ui/avatar"; import { buttonVariants } from "../ui/button"; -const AUTO_CHECK_UPDATES_INTERVAL_MINUTES = 5; +const AUTO_CHECK_UPDATES_INTERVAL_MINUTES = 7; export const Navbar = () => { const [isUpdateAvailable, setIsUpdateAvailable] = useState(false);