Note
Watchtower now checks notification URLs at startup. A URL that Shoutrrr v0.22.1 cannot use, such as a Gotify URL with a malformed token, stops Watchtower with an error naming the service. See Notifications.
Fixes
- fix(api): report the container's repository digest in image endpoints by @nicholas-fedor in #2805
- fix(api): sort the images endpoint results by @nicholas-fedor in #2811
- fix(api): return empty arrays when api filters match nothing by @nicholas-fedor in #2813
- fix(api): declare the apache 2.0 license in the swagger spec by @nicholas-fedor in #2821
- fix(container): handle containers without config data by @nicholas-fedor in #2823
- fix(git): link changelogs for scp-style clone urls with any user by @nicholas-fedor in #2825
- fix(scheduling): leave shutdown signal handling to the caller by @nicholas-fedor in #2831
- fix(actions): validate the self-update orchestrator environment by @nicholas-fedor in #2835
- fix(actions): skip containers that disappear before they are stopped by @nicholas-fedor in #2837
- fix(container): log container dependencies once per scan by @nicholas-fedor in #2839
- fix(container): stop logging each watchtower container check by @nicholas-fedor in #2841
- fix(container): detect container ids from systemd cgroup scopes by @nicholas-fedor in #2847
- fix(metrics): record scans that end in an error as failed by @nicholas-fedor in #2849
- fix(container): keep digest fallback warnings out of notifications by @nicholas-fedor in #2853
- fix(container): always order containers after network and link targets by @nicholas-fedor in #2859
- fix(notifications): keep legacy slack channel ids in converted urls by @nicholas-fedor in #2861
- fix(api): stop the api server when canceled during startup by @nicholas-fedor in #2863
- fix(api): bind the http api on ipv6 hosts by @nicholas-fedor in #2865
- fix(registry): pass registry settings explicitly by @nicholas-fedor in #2867
- fix(scheduling): replace the update lock channel with a lock type by @nicholas-fedor in #2869
- fix(api): wait for the HTTP API to drain before exiting by @nicholas-fedor in #2907
- fix(container): update the compose image label when recreating containers by @nicholas-fedor in #2915
- fix(registry): reject empty digests from registry GET responses by @nicholas-fedor in #2929
- fix(registry): reject registry endpoints that are not hosts by @nicholas-fedor in #2935
- fix(registry): reject manifest and challenge URLs without a registry host by @nicholas-fedor in #2939
- fix(git): reject build remotes without a hostname when embedding credentials by @nicholas-fedor in #2945
- fix(container): reject control characters in changelog release tags by @nicholas-fedor in #2947
- fix(registry): reject bearer token realms without a host name by @nicholas-fedor in #2951
- fix(registry): cap bearer token lifetimes that overflow a duration by @nicholas-fedor in #2953
- fix(registry): end registry pacing three minutes after a rate limit by @nicholas-fedor in #3013
- fix(registry): accept docker manifest lists in digest checks by @nicholas-fedor in #3017
- fix(registry): compute the digest of a manifest served without a digest header by @nicholas-fedor in #3025
- fix(api): end event streams when the server shuts down by @nicholas-fedor in #3027
Performance
- perf(sorter): index identifiers for dependency link matching by @nicholas-fedor in #2845
Dependency Updates
- chore(deps): update golang.org/x/exp digest to 2ab7f3c by @renovate[bot] in #2798
- chore(deps): update module github.com/containerd/containerd/v2 to v2.4.2 by @renovate[bot] in #2801
- chore(deps): update module github.com/microsoft/go-winio to v0.6.4 by @renovate[bot] in #2802
- chore(deps): update github.com/xrash/smetrics digest to 39c47d9 by @renovate[bot] in #2809
- chore(deps): update module github.com/gofiber/utils/v2 to v2.6.2 by @renovate[bot] in #2815
- chore(deps): update golang.org/x/exp digest to f0251eb by @renovate[bot] in #2818
- chore(deps): update github.com/google/pprof digest to c3b4e57 by @renovate[bot] in #2817
- chore(deps): update module github.com/gofiber/fiber/v3 to v3.6.1 by @renovate[bot] in #2827
- chore(deps): update module github.com/stretchr/objx to v0.8.0 by @renovate[bot] in #2828
- chore(deps): update module github.com/docker/cli to v29.9.1+incompatible by @renovate[bot] in #2832
- chore(deps): update module github.com/grpc-ecosystem/grpc-gateway/v2 to v2.32.0 by @renovate[bot] in #2843
- chore(deps): update github/codeql-action action to v4.39.0 by @renovate[bot] in #2851
- chore(deps): update module github.com/gofiber/contrib/v3/zerolog to v1.1.7 by @renovate[bot] in #2856
- chore(deps): update module github.com/gofiber/contrib/v3/swaggo to v1.0.13 by @renovate[bot] in #2855
- chore(deps): update github.com/google/pprof digest to 1facf8f by @renovate[bot] in #2878
- chore(deps): update module github.com/philhofer/fwd to v1.2.1 by @renovate[bot] in #2885
- chore(deps): update module github.com/knadh/koanf/v2 to v2.4.0 by @renovate[bot] in #2899
- chore(deps): update module github.com/knadh/koanf/v2 to v2.4.1 by @renovate[bot] in #2913
- chore(deps): update module github.com/valyala/fasthttp to v1.76.0 by @renovate[bot] in #2917
- chore(deps): update step-security/harden-runner action to v2.22.2 by @renovate[bot] in #2926
- chore(deps): update google.golang.org/genproto/googleapis/api digest to ce908d2 by @renovate[bot] in #2931
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest to ce908d2 by @renovate[bot] in #2932
- chore(deps): update module github.com/maypok86/otter/v2 to v2.4.0 by @renovate[bot] in #2937
- chore(deps): update go module directive to v1.27.3 by @renovate[bot] in #2943
- chore(deps): update golang:alpine3.24 docker digest to f2c872b by @renovate[bot] in #2954
- chore(deps): update golang docker tag to v1.27.3 by @renovate[bot] in #2955
- chore(deps): update module github.com/huandu/xstrings to v1.6.3 by @renovate[bot] in #2958
- chore(deps): update module github.com/gofiber/schema to v1.9.0 by @renovate[bot] in #2961
- chore(deps): update module github.com/docker/cli to v29.9.2+incompatible by @renovate[bot] in #2967
- chore(deps): update module github.com/docker/docker-credential-helpers to v0.9.12 by @renovate[bot] in #2968
- chore(deps): update module github.com/moby/buildkit to v0.34.1 by @renovate[bot] in #2973
- chore(deps): update module github.com/docker/compose/v5 to v5.6.1 by @renovate[bot] in #2981
- chore(deps): update github/codeql-action action to v4.39.1 by @renovate[bot] in #2996
- chore(deps): update dependency python to v3.15.1 by @renovate[bot] in #2995
- chore(deps): update nicholas-fedor/govulncheck-action action to v1.1.2 by @renovate[bot] in #3000
- build(deps): remove ginkgo and gomega by @nicholas-fedor in #3006
- chore(deps): update module github.com/nicholas-fedor/shoutrrr to v0.22.1 by @renovate[bot] in #3015
- chore(deps): update alpine docker tag to v3.24.3 by @renovate[bot] in #3019
- chore(deps): update golang:1.27.3-alpine docker digest to d530cf6 by @renovate[bot] in #3029
- chore(deps): update golang:alpine3.24 docker digest to d530cf6 by @renovate[bot] in #3030
Full Changelog: v1.23.1...v1.23.2