diff --git a/ct/immich.sh b/ct/immich.sh index 4e40372ce..de757d76f 100644 --- a/ct/immich.sh +++ b/ct/immich.sh @@ -109,7 +109,7 @@ EOF msg_ok "Image-processing libraries up to date" fi - RELEASE="2.5.6" + RELEASE="v2.5.6" if check_for_gh_release "Immich" "immich-app/immich" "${RELEASE}"; then if [[ $(cat ~/.immich) > "2.5.1" ]]; then msg_info "Enabling Maintenance Mode" @@ -165,7 +165,7 @@ EOF ) setup_uv - CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Immich" "immich-app/immich" "tarball" "v${RELEASE}" "$SRC_DIR" + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Immich" "immich-app/immich" "tarball" "${RELEASE}" "$SRC_DIR" PNPM_VERSION="$(jq -r '.packageManager | split("@")[1]' ${SRC_DIR}/package.json)" NODE_VERSION="24" NODE_MODULE="pnpm@${PNPM_VERSION}" setup_nodejs diff --git a/ct/nocodb.sh b/ct/nocodb.sh index 6ada9ef6a..30d2a751d 100644 --- a/ct/nocodb.sh +++ b/ct/nocodb.sh @@ -23,16 +23,17 @@ function update_script() { header_info check_container_storage check_container_resources + RELEASE="0.301.1" if [[ ! -f /etc/systemd/system/nocodb.service ]]; then msg_error "No ${APP} Installation Found!" exit fi - if check_for_gh_release "nocodb" "nocodb/nocodb" "0.301.1"; then + if check_for_gh_release "nocodb" "nocodb/nocodb" "${RELEASE}"; then msg_info "Stopping Service" systemctl stop nocodb msg_ok "Stopped Service" - fetch_and_deploy_gh_release "nocodb" "nocodb/nocodb" "singlefile" "0.301.1" "/opt/nocodb/" "Noco-linux-x64" + fetch_and_deploy_gh_release "nocodb" "nocodb/nocodb" "singlefile" "${RELEASE}" "/opt/nocodb/" "Noco-linux-x64" msg_info "Starting Service" systemctl start nocodb diff --git a/ct/patchmon.sh b/ct/patchmon.sh index 02741386e..e49324495 100644 --- a/ct/patchmon.sh +++ b/ct/patchmon.sh @@ -36,8 +36,9 @@ function update_script() { read -r fi + RELEASE="v1.4.2" NODE_VERSION="24" setup_nodejs - if check_for_gh_release "PatchMon" "PatchMon/PatchMon" "1.4.2"; then + if check_for_gh_release "PatchMon" "PatchMon/PatchMon" "${RELEASE}"; then msg_info "Stopping Service" systemctl stop patchmon-server msg_ok "Stopped Service" @@ -47,7 +48,7 @@ function update_script() { cp /opt/patchmon/frontend/.env /opt/frontend.env msg_ok "Backup Created" - CLEAN_INSTALL=1 fetch_and_deploy_gh_release "PatchMon" "PatchMon/PatchMon" "tarball" "v1.4.2" "/opt/patchmon" + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "PatchMon" "PatchMon/PatchMon" "tarball" "${RELEASE}" "/opt/patchmon" msg_info "Updating PatchMon" VERSION=$(get_latest_github_release "PatchMon/PatchMon") diff --git a/ct/plant-it.sh b/ct/plant-it.sh index 445d84f96..d3f858a1b 100644 --- a/ct/plant-it.sh +++ b/ct/plant-it.sh @@ -23,18 +23,19 @@ function update_script() { header_info check_container_storage check_container_resources + RELEASE="0.10.0" if [[ ! -d /opt/plant-it ]]; then msg_error "No ${APP} Installation Found!" exit fi setup_mariadb - if check_for_gh_release "plant-it" "MDeLuise/plant-it"; then + if check_for_gh_release "plant-it" "MDeLuise/plant-it" "${RELEASE}"; then msg_info "Stopping Service" systemctl stop plant-it msg_info "Stopped Service" - USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "plant-it" "MDeLuise/plant-it" "singlefile" "0.10.0" "/opt/plant-it/backend" "server.jar" - fetch_and_deploy_gh_release "plant-it-front" "MDeLuise/plant-it" "prebuild" "0.10.0" "/opt/plant-it/frontend" "client.tar.gz" + USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "plant-it" "MDeLuise/plant-it" "singlefile" "${RELEASE}" "/opt/plant-it/backend" "server.jar" + fetch_and_deploy_gh_release "plant-it-front" "MDeLuise/plant-it" "prebuild" "${RELEASE}" "/opt/plant-it/frontend" "client.tar.gz" msg_warn "Application is updated to latest Web version (v0.10.0). There will be no more updates available." msg_warn "Please read: https://github.com/MDeLuise/plant-it/releases/tag/1.0.0" diff --git a/misc/tools.func b/misc/tools.func index e0e1ef581..986b16ba3 100644 --- a/misc/tools.func +++ b/misc/tools.func @@ -2223,6 +2223,35 @@ check_for_gh_release() { # Try /latest endpoint for non-pinned versions (most efficient) local releases_json="" http_code="" + # For pinned versions, query the specific release tag directly + if [[ -n "$pinned_version_in" ]]; then + http_code=$(curl -sSL --max-time 20 -w "%{http_code}" -o /tmp/gh_check.json \ + -H 'Accept: application/vnd.github+json' \ + -H 'X-GitHub-Api-Version: 2022-11-28' \ + "${header_args[@]}" \ + "https://api.github.com/repos/${source}/releases/tags/${pinned_version_in}" 2>/dev/null) || true + + if [[ "$http_code" == "200" ]] && [[ -s /tmp/gh_check.json ]]; then + releases_json="[$(/dev/null) || true + http_code=$(curl --connect-timeout 10 --max-time "${api_timeouts[$((attempt - 1))]:-240}" -sSL -w "%{http_code}" -o /tmp/gh_rel.json "${header[@]}" "$api_url" 2>/dev/null) || true if [[ "$http_code" == "200" ]]; then success=true break