Bugfix: Explicitly cast returned versions as string for comparisons
All checks were successful
/ build (push) Successful in 41s

This commit is contained in:
Florian 2025-10-20 12:44:27 +02:00
parent 7d9efdbc28
commit 5c49b6ad83
3 changed files with 14 additions and 12 deletions

View File

@ -57,7 +57,7 @@ def find_package_version_with_tag(repo: str, tag: str) -> str:
tag_id = data.get("id")
if tag_id:
logger.info(f"[DockerHub] Found tag '{tag}' for repo '{repo}', ID: {tag_id}")
return tag_id
return str(tag_id)
else:
logger.debug(f"[DockerHub] Tag '{tag}' not found for repo '{repo}'")
return None

View File

@ -38,7 +38,7 @@ def find_package_version_with_tag(org: str, package: str, target_tag: str) -> st
tags = version.get("metadata", {}).get("container", {}).get("tags", [])
if target_tag in tags:
logger.info(f"[GitHub] Found tag '{target_tag}' for {package} on page {page}, version ID: {version['id']}")
return version["id"]
return str(version["id"])
page += 1
logger.debug(f"[GitHub] Tag '{target_tag}' not found on page {page-1}, moving to page {page}")

View File

@ -67,18 +67,19 @@ def handle_suwayomi(
try:
logger.info("[App] Suwayomi handler invoked")
latest_online_version = find_package_version_with_tag_github("Suwayomi", "tachidesk", "stable")
logger.debug(f"[App] Fetched latest Suwayomi version from GitHub: {latest_online_version}")
online_version = find_package_version_with_tag_github("Suwayomi", "tachidesk", "stable")
logger.debug(f"[App] Fetched latest Suwayomi version from GitHub: {online_version}")
cursor = db.cursor()
cursor.execute("SELECT latest_version FROM docker_repositories WHERE app='suwayomi'")
local_state = cursor.fetchone()
logger.debug(f"[App] Local Suwayomi version from DB: {local_state}")
local_version = str(local_state[0]) if local_state and local_state[0] is not None else None
logger.debug(f"[App] Comparing versions: local='{local_version}' vs online='{online_version}'")
if local_state and latest_online_version != local_state[0]:
if local_version != online_version:
logger.debug("[App] Version mismatch detected. Updating database.")
cursor.execute ("UPDATE docker_repositories SET latest_version=%s WHERE app='suwayomi'",
(latest_online_version,))
(online_version,))
db.commit()
logger.info("[App] New Suwayomi version recorded in database")
send_notification("New Suwayomi version has been found")
@ -101,18 +102,19 @@ def handle_pihole(
):
try:
logger.info("[App] Pi-hole handler invoked")
latest_online_version = find_package_version_with_tag_dockerhub("pihole/pihole", "latest")
logger.debug(f"Fetched latest Pi-hole version from Docker Hub: {latest_online_version}")
online_version = find_package_version_with_tag_dockerhub("pihole/pihole", "latest")
logger.debug(f"Fetched latest Pi-hole version from Docker Hub: {online_version}")
cursor = db.cursor()
cursor.execute("SELECT latest_version FROM docker_repositories WHERE app='pihole'")
local_state = cursor.fetchone()
logger.debug(f"[App] Local Pi-hole version from DB: {local_state}")
local_version = str(local_state[0]) if local_state and local_state[0] is not None else None
logger.debug(f"[App] Comparing versions: local='{local_version}' vs online='{online_version}'")
if local_state and latest_online_version != local_state[0]:
if local_version != online_version:
logger.debug("[App] Version mismatch detected. Updating database.")
cursor.execute ("UPDATE docker_repositories SET latest_version=%s WHERE app='pihole'",
(latest_online_version,))
(online_version,))
db.commit()
logger.info("[App] New Pi-hole version recorded in database")
send_notification("New Pi-hole version has been found")