diff --git a/lib/dockerhub.nu b/lib/dockerhub.nu index 3584277..c51053e 100644 --- a/lib/dockerhub.nu +++ b/lib/dockerhub.nu @@ -1,4 +1,4 @@ -export def get_image_digest [image: string] { +export def get_image_digest [image: string, tag: string] { let token = ( get_token $image ) mut headers = ( [] | append [Accept "application/vnd.docker.distribution.manifest.v2+json"] @@ -6,7 +6,7 @@ export def get_image_digest [image: string] { ) print $headers - ( http get -H $headers $"https://registry.hub.docker.com/v2/($image)/manifests/latest" + ( http get -H $headers $"https://registry.hub.docker.com/v2/($image)/manifests/($tag)" | from json | get config | get digest diff --git a/podman-update-check b/podman-update-check index e14aeb6..82ae391 100755 --- a/podman-update-check +++ b/podman-update-check @@ -29,12 +29,18 @@ export def needs_update [] { let data = $in let name_parts = ( $data.Name | split row "/" --number 2 ) let registry = ( $name_parts | first ) - let image = ( $name_parts | last | split row ":" | get 0 ) + let img_parts = ( $name_parts | last | split row ":" ) + let image = ( $img_parts | get 0 ) + let tag = ( $img_parts | get 1 ) let digest = $data.Id - print $"Checking if ($image) has updates on ($registry)" + print $"Checking if ($image):($tag) has updates on ($registry)" if $registry == "docker.io" { - ( dockerhub get_image_digest $image ) != $digest + try { + ( dockerhub get_image_digest $image $tag ) != $digest + } catch { + false + } } else { print $"Host ($registry) is not supported" false