From 84c61af74d70e0806af532891b0e649f01695d60 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri, 7 Jun 2024 16:47:49 -0700 Subject: [PATCH] Enhancement: support disable release checking --- docs/configs/settings.md | 8 +++++++- src/components/version.jsx | 4 ++-- src/pages/api/releases.js | 10 +++++++++- src/pages/index.jsx | 2 +- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/docs/configs/settings.md b/docs/configs/settings.md index 2f387a65b..4e4bda81d 100644 --- a/docs/configs/settings.md +++ b/docs/configs/settings.md @@ -402,7 +402,7 @@ quicklaunch: suggestionUrl: https://ac.ecosia.org/autocomplete?type=list&q= ``` -## Homepage Version +## Homepage Version & Update Checking By default the release version is displayed at the bottom of the page. To hide this, use the `hideVersion` setting, like so: @@ -410,6 +410,12 @@ By default the release version is displayed at the bottom of the page. To hide t hideVersion: true ``` +You can disable checking for new versions from GitHub (enabled by default) with: + +```yaml +disableUpdateCheck: true +``` + ## Log Path By default the homepage logfile is written to the a `logs` subdirectory of the `config` folder. In order to customize this path, you can set the `logpath` setting. A `logs` folder will be created in that location where the logfile will be written. diff --git a/src/components/version.jsx b/src/components/version.jsx index 5c0b82b6c..96e230df6 100644 --- a/src/components/version.jsx +++ b/src/components/version.jsx @@ -3,7 +3,7 @@ import useSWR from "swr"; import { compareVersions } from "compare-versions"; import { MdNewReleases } from "react-icons/md"; -export default function Version() { +export default function Version({ disableUpdateCheck = false }) { const { t, i18n } = useTranslation(); const buildTime = process.env.NEXT_PUBLIC_BUILDTIME?.length @@ -12,7 +12,7 @@ export default function Version() { const revision = process.env.NEXT_PUBLIC_REVISION?.length ? process.env.NEXT_PUBLIC_REVISION : "dev"; const version = process.env.NEXT_PUBLIC_VERSION?.length ? process.env.NEXT_PUBLIC_VERSION : "dev"; - const { data: releaseData } = useSWR("/api/releases"); + const { data: releaseData } = useSWR(disableUpdateCheck ? null : "/api/releases"); // use Intl.DateTimeFormat to format the date const formatDate = (date) => { diff --git a/src/pages/api/releases.js b/src/pages/api/releases.js index 14d3051d6..f15930c21 100644 --- a/src/pages/api/releases.js +++ b/src/pages/api/releases.js @@ -1,6 +1,14 @@ import cachedFetch from "utils/proxy/cached-fetch"; +import createLogger from "utils/logger"; + +const logger = createLogger("releases"); export default async function handler(req, res) { const releasesURL = "https://api.github.com/repos/gethomepage/homepage/releases"; - return res.send(await cachedFetch(releasesURL, 5)); + try { + return res.send(await cachedFetch(releasesURL, 5)); + } catch (e) { + logger.error(`Error checking GitHub releases: ${e}`); + return res.send([]); + } } diff --git a/src/pages/index.jsx b/src/pages/index.jsx index 75674c304..1a044ca39 100644 --- a/src/pages/index.jsx +++ b/src/pages/index.jsx @@ -445,7 +445,7 @@ function Home({ initialSettings }) {
- {!settings.hideVersion && } + {!settings.hideVersion && }