Note
Watchtower now checks notification URLs more strictly at startup. Shoutrrr v0.23.0 rejects some URLs that earlier versions accepted, such as a Discord webhook whose ID is not a number. See Notifications.
Features
- feat(container): support check hook timeout labels by @nicholas-fedor in #3244
Fixes
- fix(registry): send the registry token only to same-origin manifest redirects by @nicholas-fedor in #3032
- fix(registry): reject bearer challenges redirected from https to http by @nicholas-fedor in #3044
- fix(release): merge concurrent release tag lookups for the same image by @nicholas-fedor in #3049
- fix(container): skip the health wait for disabled health checks by @nicholas-fedor in #3053
- fix(compose): reject Compose files that compose-go selects outside the project by @nicholas-fedor in #3063
- fix(filters): keep every value given for a repeated label key by @nicholas-fedor in #3067
- fix(config): accept only plain numbers in disk-space sizes and percentages by @nicholas-fedor in #3069
- fix(metrics): reuse collectors the registry already holds by @nicholas-fedor in #3073
- fix(settings): resolve settings edge cases in config loading by @nicholas-fedor in #3079
- fix(settings): accept repeated all and whitespace in http-api-endpoints by @nicholas-fedor in #3085
- fix(container): consolidate MAC address checks on container recreation by @nicholas-fedor in #3092
- fix(container): bound hook output reads by their timeout and close redaction gaps by @nicholas-fedor in #3106
- fix(container): redact camelCase credential query parameters by @nicholas-fedor in #3112
- fix(container): stop nesting legacy link names on recreation by @nicholas-fedor in #3114
- fix(container): reject unsafe characters in changelog repository paths by @nicholas-fedor in #3122
- fix(container): keep build error causes after redaction by @nicholas-fedor in #3128
- fix(container): detect the runtime for clients without a filesystem by @nicholas-fedor in #3138
- fix(container): allow two dots inside copy-file names by @nicholas-fedor in #3146
- fix(container): report lifecycle hook failures as what went wrong by @nicholas-fedor in #3154
- fix(update): skip the health wait after an ephemeral self-update handoff by @nicholas-fedor in #3160
- fix(update): keep orchestrator recovery alive past the handoff deadline by @nicholas-fedor in #3165
- fix: keep self-updates enabled when the Docker daemon starts slowly by @nicholas-fedor in #3167
- fix: exit instead of running unscoped when the scope label cannot be read by @nicholas-fedor in #3169
- fix: report when Watchtower cannot disable its restart policy on exit by @nicholas-fedor in #3173
- fix(update): give detached Docker calls time beyond the stop timeout by @nicholas-fedor in #3236
- fix(update): bound failed-replacement cleanup by the container stop timeout by @nicholas-fedor in #3238
- fix(rebuild): bound git rebuilds by their own limit, not the git timeout by @nicholas-fedor in #3240
- fix(container): reject negative lifecycle hook timeouts by @nicholas-fedor in #3242
- fix(hooks): read lifecycle hook labels only for hooks that run by @nicholas-fedor in #3246
- fix(notifications): reject malformed Discord webhook URLs by @nicholas-fedor in #3248
- fix(notifications): log empty notification skips at debug only by @nicholas-fedor in #3250
- fix(api): report the last scan's time as the status timestamp by @nicholas-fedor in #3266
- fix(metrics): count skipped scheduled scans again by @nicholas-fedor in #3278
- fix: recover and notify update panics by @nicholas-fedor in #3282
- fix(update): list update errors in report-mode notifications by @nicholas-fedor in #3284
- fix(update): notify a disk-space abort once by @nicholas-fedor in #3286
- fix(sorter): notify an identifier collision once by @nicholas-fedor in #3288
- fix(update): report the containers a canceled scan never checked as skipped by @nicholas-fedor in #3290
- fix(notifications): show the error cause in the default template's fallback by @nicholas-fedor in #3292
- fix(update): end a scan only when the scan itself is canceled by @nicholas-fedor in #3294
- fix(update): warn once when a container's update check fails by @nicholas-fedor in #3296
- fix(update): warn once when a stale container's configuration cannot be recreated by @nicholas-fedor in #3302
- fix(update): warn once for an invalid Git label by @nicholas-fedor in #3304
- fix(container): warn once for an invalid container label by @nicholas-fedor in #3312
- fix(settings): reject negative duration settings at startup by @nicholas-fedor in #3324
- fix(notify-upgrade): exit with code 1 when the upgrade fails by @nicholas-fedor in #3330
- fix(cmd): disable restarts before exiting on startup errors by @nicholas-fedor in #3337
- fix(settings): reject invalid integer settings at startup by @nicholas-fedor in #3345
- fix(settings): check every numeric setting's range at startup by @nicholas-fedor in #3347
- fix(settings): reject an HTTP API rate limit of zero at startup by @nicholas-fedor in #3351
- fix(settings): reject lifecycle UIDs and GIDs above 2147483647 by @nicholas-fedor in #3353
- fix(notifications): keep tokens out of notification send-failure logs by @nicholas-fedor in #3361
- fix(git): pick equal release tags by name by @nicholas-fedor in #3392
- fix(git): stop repeating the git-host error prefix by @nicholas-fedor in #3399
- fix(update): stop repeating container client error prefixes by @nicholas-fedor in #3406
- fix(notify): log shoutrrr records at their own level by @nicholas-fedor in #3415
- fix(notify): stop panicking and waiting out delays after close by @nicholas-fedor in #3417
- fix(notify): check upgraded notification urls with shoutrrr by @nicholas-fedor in #3419
- fix(notify): return errors for missing legacy notifier settings by @nicholas-fedor in #3423
- fix(notify): exit through startup's exit path when notifications fail to initialize by @nicholas-fedor in #3425
- fix(notify): report rejected notification urls the same way at startup by @nicholas-fedor in #3427
Dependency Updates
- chore(deps): update module github.com/prometheus/procfs to v0.23.0 by @renovate[bot] in #3089
- chore(deps): update module github.com/moby/sys/capability to v0.5.0 by @renovate[bot] in #3120
- chore(deps): update module github.com/molecule-man/go-brrr to v1.3.1 by @renovate[bot] in #3132
- chore(deps): update module github.com/valyala/fasthttp to v1.77.0 by @renovate[bot] in #3171
- chore(deps): update module github.com/gofiber/utils/v2 to v2.6.3 by @renovate[bot] in #3177
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest to 2ffab32 by @renovate[bot] in #3182
- chore(deps): update google.golang.org/genproto/googleapis/api digest to 2ffab32 by @renovate[bot] in #3181
- chore(deps): update module github.com/moby/sys/user to v0.5.0 by @renovate[bot] in #3186
- chore(deps): update module google.golang.org/grpc to v1.85.0 by @renovate[bot] in #3194
- chore(deps): update module github.com/grpc-ecosystem/grpc-gateway/v2 to v2.33.0 by @renovate[bot] in #3199
- chore(deps): update module golang.org/x/net to v0.62.0 by @renovate[bot] in #3210
- chore(deps): update module github.com/hashicorp/go-uuid to v1.0.4 by @renovate[bot] in #3224
- chore(deps): update module github.com/vektra/mockery/v3 to v3.9.0 by @renovate[bot] in #3232
- chore(deps): update module github.com/gofiber/contrib/v3/swaggo to v1.0.15 by @renovate[bot] in #3257
- chore(deps): update module github.com/gofiber/contrib/v3/zerolog to v1.1.9 by @renovate[bot] in #3258
- chore(deps): update module github.com/prometheus/common to v0.73.1 by @renovate[bot] in #3298
- chore(deps): update module github.com/pandatix/go-abnf to v0.5.5 by @renovate[bot] in #3332
- chore(deps): update module go.yaml.in/yaml/v3 to v3.0.6 by @renovate[bot] in #3338
- chore(deps): update module github.com/cenkalti/backoff/v7 to v7.0.3 by @renovate[bot] in #3348
- chore(deps): update module go.yaml.in/yaml/v2 to v2.4.5 by @renovate[bot] in #3375
- chore(deps): update module go.yaml.in/yaml/v4 to v4.0.0-rc.9 by @renovate[bot] in #3379
- chore(deps): update module github.com/docker/compose/v5 to v5.7.0 by @renovate[bot] in #3380
- chore(deps): update module connectrpc.com/connect to v1.21.1 by @renovate[bot] in #3384
- chore(deps): update github.com/tonistiigi/fsutil digest to e075fd9 by @renovate[bot] in #3396
- chore(deps): update module github.com/gofiber/schema to v1.9.3 by @renovate[bot] in #3401
- chore(deps): update module github.com/docker/cli to v29.9.3+incompatible by @renovate[bot] in #3408
- chore(deps): update module github.com/moby/buildkit to v0.34.2 by @renovate[bot] in #3409
- chore(deps): update module github.com/nicholas-fedor/shoutrrr to v0.23.0 by @renovate[bot] in #3411
Full Changelog: v1.23.2...v1.24.0