sstidl
a293ac4cb9
Merge pull request #811 from librespeed/dependabot/docker/alpine-3.24
...
Docker / e2e (push) Has been cancelled
Docker / build (./Dockerfile, , ghcr.io/${{ github.repository }}) (push) Has been cancelled
Docker / build (./Dockerfile.alpine, -alpine, ghcr.io/${{ github.repository }}) (push) Has been cancelled
chore(deps): bump alpine from 3.23 to 3.24
2026-06-15 13:21:39 +02:00
dependabot[bot]
b765d5993a
chore(deps): bump alpine from 3.23 to 3.24
...
Bumps alpine from 3.23 to 3.24.
---
updated-dependencies:
- dependency-name: alpine
dependency-version: '3.24'
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-15 05:08:26 +00:00
sstidl
23b7780056
Merge pull request #805 from librespeed/internet-stability
...
Docker / e2e (push) Has been cancelled
Docker / build (./Dockerfile, , ghcr.io/${{ github.repository }}) (push) Has been cancelled
Docker / build (./Dockerfile.alpine, -alpine, ghcr.io/${{ github.repository }}) (push) Has been cancelled
add internet stability test
2026-05-27 22:54:47 +02:00
Stefan Stidl
320b908864
Add stability feature Playwright coverage, fix Server selection start race
Docker / e2e (push) Has been cancelled
Docker / build (./Dockerfile, , ghcr.io/${{ github.repository }}) (push) Has been cancelled
Docker / build (./Dockerfile.alpine, -alpine, ghcr.io/${{ github.repository }}) (push) Has been cancelled
2026-05-16 20:02:21 +02:00
Stefan Stidl
48263c47e8
remove duplicated lines from rebase
2026-05-16 19:10:39 +02:00
Stefan Stidl
8ba87a92bc
Merge branch 'internet-stability' of https://github.com/librespeed/speedtest into internet-stability
2026-05-16 19:06:45 +02:00
Stefan Stidl
89e14e9a38
Update README for stability test
2026-05-16 18:48:13 +02:00
Stefan Stidl
7a995280a2
Fix stability test server list and timeouts
2026-05-16 18:48:13 +02:00
Stefan Stidl
fd883ba67f
fix: clarify stability failed requests metric
2026-05-16 18:47:09 +02:00
Tom Hudson
5278912ed4
Fix code review issues: server loading, subdir nav, chart perf
...
- Load server list dynamically from servers.json for Docker frontend/dual modes
- Copy servers.json to web root in entrypoint.sh for frontend/dual modes
- Change back link from href="/" to href="./" for subdirectory installs
- Use binary search for visible chart data range (O(log n) vs O(n))
- Add 200ms minimum interval between pings to limit sample rate
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-16 18:47:09 +02:00
Tom Hudson
7839a4331c
Add internet stability test feature
...
Add a prolonged ping-based stability test with real-time canvas chart,
stats (avg/min/max/jitter/packet loss), stability rating, external ping
targets, CSV export, and Docker support. Link from main page to stability test.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-16 18:47:08 +02:00
valer23
5cd7ce2efa
perf: avoid O(n²) indexOf lookup in classic UI server loop
...
Docker / e2e (push) Has been cancelled
Docker / build (./Dockerfile, , ghcr.io/${{ github.repository }}) (push) Has been cancelled
Docker / build (./Dockerfile.alpine, -alpine, ghcr.io/${{ github.repository }}) (push) Has been cancelled
Build an array of {idx, server} pairs before sorting so the original
SPEEDTEST_SERVERS index is carried through, eliminating the per-option
indexOf call.
2026-05-16 18:30:54 +02:00
valer23
69fa7a4edb
fix: handle parenthetical qualifiers and multi-comma server names
...
Parse server names more robustly for sorting:
- "City, Country, Provider" → use second part as country
- "City, Country (1) (Hetzner)" → strip parentheticals from country
- "Frankfurt, Germany (FRA01)" → country is "Germany" not "Germany (FRA01)"
2026-05-16 18:30:54 +02:00
valer23
42d700cf08
fix: avoid mutating original server array and add null guard
...
Address code review findings:
- Sort a shallow copy instead of mutating the caller's array
- Add null guard on server.name to handle malformed entries
- Use original SPEEDTEST_SERVERS index for classic UI option values
2026-05-16 18:30:54 +02:00
valer23
4ec3a755fa
feat: sort server list by country name instead of city name
...
Sort the server dropdown by country first, then by city within the same
country. This makes it easier to find servers in a specific country when
the list is long. Applies to both modern and classic UIs.
2026-05-16 18:30:54 +02:00
sstidl
c11ee9f68a
Merge pull request #800 from akirayamamoto/experiment/alpine-base-no-php
...
Drop FROM php:8-alpine in favor of FROM alpine:3.23 (~55% smaller image)
2026-05-16 17:57:30 +02:00
sstidl
7b5c33455d
Merge branch 'master' into experiment/alpine-base-no-php
2026-05-16 17:56:02 +02:00
Stefan Stidl
94104e9bb3
Update README for stability test
2026-05-16 17:23:34 +02:00
Stefan Stidl
a9197302b0
Fix stability test server list and timeouts
2026-05-16 15:22:06 +02:00
Stefan Stidl
8db7cdca80
fix: clarify stability failed requests metric
2026-05-16 15:08:34 +02:00
Stefan Stidl
903a7024c4
Merge origin/master into internet-stability
2026-05-16 10:23:37 +02:00
Akira Yamamoto
8c22140ebb
Make ca-certificates dependency explicit
...
ca-certificates-bundle (which provides /etc/ssl/certs/ca-certificates.crt)
is already pulled in transitively by apache2 / php-apache2 on alpine:3.23,
so live HTTPS calls from PHP work today (verified with file_get_contents
against ipinfo.io). But the master image (FROM php:8-alpine) installs
the full ca-certificates package explicitly, and operators with
IPINFO_APIKEY configured rely on outbound HTTPS. Make the dependency
explicit to:
* Match master's package set rather than relying on a transitive pull
that some future apk dep change could drop.
* Document the runtime TLS requirement at the Dockerfile level instead
of leaving it implicit.
~50 KB image-size cost; the umbrella ca-certificates package adds the
update-ca-certificates CLI on top of the bundle. Per Qodo's review on
PR #800 .
2026-04-27 14:27:46 +10:00
Akira Yamamoto
475cae5b0e
EXPERIMENT: drop FROM php:8-alpine in favor of FROM alpine:3.21
...
The current Dockerfile.alpine pulls FROM php:8-alpine and then `apk
add php-apache2`. The result is two PHP installs side by side: the
docker-library PHP at /usr/local/bin/php (~30 MB, never used by
Apache) and the apk-installed PHP at /usr/bin/php (which mod_php
actually loads).
Pinning a fresh Alpine release and installing the apk packages
directly drops the dead /usr/local/bin/php install entirely.
Expected wins:
- Smaller image (~30 MB less; 2024 baseline was ~120 MB)
- One PHP binary, no $PATH ambiguity
- Cleaner story for any follow-up that touches PHP config
2026-04-27 10:03:14 +10:00
Stefan Stidl
e52fcda7c3
docs: update install instructions ( closes #790 )
2026-04-26 14:23:09 +02:00
Copilot
853214db6c
chore(release): v6.1.0 ( #795 )
...
Agent-Logs-Url: https://github.com/librespeed/speedtest/sessions/8a2ce044-63ba-41c9-9629-b759008e8afc
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
2026-04-18 23:33:55 +02:00
sstidl
1ec859d63c
Rename my-agent.agent.md to release-agent.agent.md
2026-04-18 23:17:54 +02:00
sstidl
5c563305fc
Define Release Agent with purpose and responsibilities
...
Added detailed description and responsibilities for the Release Agent, including its purpose, workflow, output format, and constraints.
2026-04-18 23:16:28 +02:00
Copilot
ecb2a0e736
Add Docker TAGLINE env customization for modern frontend slogan ( #794 )
...
* Initial plan
* Add Docker TAGLINE env customization for modern UI slogan
Agent-Logs-Url: https://github.com/librespeed/speedtest/sessions/e1da6e0e-5194-453d-bffb-961ed782e215
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
* Refine TAGLINE replacement and expand E2E coverage
Agent-Logs-Url: https://github.com/librespeed/speedtest/sessions/e1da6e0e-5194-453d-bffb-961ed782e215
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
* Fix TAGLINE sed delimiter and add apostrophe tagline E2E test
- Switch TAGLINE sed from '#' to '/' delimiter so html_escape'd
apostrophes (') don't break the sed expression
- Add standalone-apostrophe Docker service with TAGLINE="It'd rather be fast!"
- Add standaloneApostrophe URL (port 18186) to env.js
- Add E2E test asserting the apostrophe tagline renders correctly
Agent-Logs-Url: https://github.com/librespeed/speedtest/sessions/ebe265a8-4b1e-49b5-959a-66133ea0ab3a
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
2026-04-18 23:06:37 +02:00
sstidl
8f0323c4a7
update geoip phar and db
2026-04-18 22:29:36 +02:00
Stefan Stidl
c3d6830814
chore(release): v6.0.2
2026-04-14 14:25:27 +02:00
sstidl
18b46600d0
docker: apply TITLE to modern page heading ( #788 )
...
Co-authored-by: Stefan Stidl <sti-github@stidl.com>
2026-04-14 10:12:49 +02:00
sstidl
d18552fe8a
docker: restore TITLE env handling in entrypoint ( #787 )
...
* docker: restore TITLE env handling in entrypoint
* docker: escape TITLE for HTML output
* test(e2e): cover TITLE with umlauts and quotes
---------
Co-authored-by: Stefan Stidl <sti-github@stidl.com>
2026-04-14 09:06:03 +02:00
Copilot
03d62a0ca1
fix: add aria-label to startStopBtn for screen reader accessibility ( #785 )
...
Agent-Logs-Url: https://github.com/librespeed/speedtest/sessions/cfb05653-7d75-4f0d-9e9a-1765eeaa8903
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
2026-04-13 07:56:17 +02:00
Copilot
da29334083
Fix accessibility: replace div#startStopBtn with <button> in classic design ( #782 )
...
* Initial plan
* Replace div#startStopBtn with button element for keyboard accessibility
Agent-Logs-Url: https://github.com/librespeed/speedtest/sessions/f3d60a26-754c-48da-9672-542810806f72
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
2026-04-13 07:40:02 +02:00
dependabot[bot]
dce0bdddb3
chore(deps): bump actions/setup-node from 4 to 6 ( #783 )
...
Bumps [actions/setup-node](https://github.com/actions/setup-node ) from 4 to 6.
- [Release notes](https://github.com/actions/setup-node/releases )
- [Commits](https://github.com/actions/setup-node/compare/v4...v6 )
---
updated-dependencies:
- dependency-name: actions/setup-node
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-13 07:32:05 +02:00
dependabot[bot]
cd89d0e313
chore(deps): bump actions/checkout from 4 to 6 ( #784 )
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 4 to 6.
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v4...v6 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-13 07:31:44 +02:00
Copilot
d2b9c724e6
Support legacy EMAIL env var as deprecated fallback for GDPR_EMAIL ( #781 )
...
* Initial plan
* Fix: Support legacy EMAIL env var as fallback for GDPR_EMAIL in privacy policy
Agent-Logs-Url: https://github.com/librespeed/speedtest/sessions/337248e4-5c7a-4472-ad3b-381e0cd29c96
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
* fix stderr logging
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
Co-authored-by: Stefan Stidl <stefan.stidl@ffg.at>
2026-04-12 23:14:11 +02:00
sstidl
3bd9e1b7af
chore/playwright mode test plan ( #778 )
...
* ci: make standalone playwright manual and document e2e gating
* docs(test): refine playwright plan with implemented CI strategy
---------
Co-authored-by: Stefan Stidl <stefan.stidl@ffg.at>
2026-04-12 15:15:14 +02:00
sstidl
49f54a5c3c
add e2e testing ( #777 )
...
* docs(test): add playwright modes test plan
* test(e2e): add playwright phase-1 mode coverage
* test(e2e): add classic standalone no-server regression
* ci(docker): gate image build on playwright e2e
* ci(e2e): run on master push and allow manual dispatch
---------
Co-authored-by: Stefan Stidl <stefan.stidl@ffg.at>
2026-04-12 14:59:54 +02:00
Stefan Stidl
1a45664d81
version strings sync
2026-04-12 13:53:38 +02:00
sstidl
c4ce1d2731
doc: design-switch
2026-04-12 11:09:02 +00:00
Copilot
6693c7ee2c
Cherry-pick: revert "Use server-list.json in classic frontend by default" ( #776 )
...
* Revert "Use server-list.json in classic frontend by default"
This reverts commit fdb1681aad .
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
* bump version to v6.0.1
---------
Co-authored-by: Stefan Stidl <stefan.stidl@ffg.at>
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
Co-authored-by: sstidl <sstidl@users.noreply.github.com>
2026-04-12 12:47:38 +02:00
sstidl
3a7dc31ff2
Implement the new design from #649 ( #694 )
...
* Implement fromScratch design
* Add some documentation
* enable new design in docker (no alpine yet)
* merge fixed docker images
* alpine docker added new design
* fix #685
* Implement fromScratch design
* Add some documentation
* enable new design in docker (no alpine yet)
* alpine docker added new design
* fix #685
* fix database permissions alpine, remove baby
* hide serverselector on only one server
* Update frontend/styling/server-selector.css
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
* fix alpine image again
* adjust settings.json in entrypoint
so env vars are honored
* Update frontend/javascript/index.js
Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com>
* Add feature switch for new design via config file, URL parameters, and Docker (#742 )
* Initial plan
* Add feature switch for new design with config and URL parameter support
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
* Improve error handling and prevent infinite redirect loops
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
* Update Dockerfiles and entrypoint to support design feature switch
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
* Update design-switch.js
Co-authored-by: qodo-free-for-open-source-projects[bot] <189517486+qodo-free-for-open-source-projects[bot]@users.noreply.github.com>
* fix: copy actions in entrypoint
* Restructure design switch to place both designs at root level
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
* Flatten frontend assets in Docker to eliminate frontend directory
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
* fix: entrypoint settings & server-list
disable entrypoint bash debug
* add link to modern design
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
Co-authored-by: sstidl <sstidl@users.noreply.github.com>
Co-authored-by: qodo-free-for-open-source-projects[bot] <189517486+qodo-free-for-open-source-projects[bot]@users.noreply.github.com>
* add armv7
* reformat
* Add GDPR_EMAIL environment variable for Docker deployments (#743 )
* Initial plan
* Add GDPR_EMAIL environment variable for Docker deployments
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
* Improve GDPR_EMAIL handling with proper escaping and loop
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
* Refine GDPR_EMAIL processing - skip index.html and improve escaping
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
* Optimize GDPR_EMAIL sed commands and improve escaping
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
* Clarify sed escaping comment for GDPR_EMAIL
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
* cleanup old EMAIL ENV Var
* fix: line break in html prevented sed replacement
* version 6.0.0pre1
* test: add mssql docker compose tests
* Update Speedtest screen recording link in README
* Filter unreachable servers from selector (newdesign UI) (#769 )
* Filter unreachable servers from selector (newdesign UI)
* Apply suggestions from code review
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* keep // servers in list
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* fix misleading comment
---------
Co-authored-by: Lumi <lumi@openclaw.local>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Stefan Stidl <sti-github@stidl.com>
* fix: server.json handling
* Use server-list.json in classic frontend by default
* Add configurable server list URLs to frontend and Docker
---------
Co-authored-by: Timendus <mail@timendus.com>
Co-authored-by: Stefan Stidl <stefan.stidl@ffg.at>
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
Co-authored-by: qodo-free-for-open-source-projects[bot] <189517486+qodo-free-for-open-source-projects[bot]@users.noreply.github.com>
Co-authored-by: Stefan Stidl <sti-github@stidl.com>
Co-authored-by: Lumi <lumi@openclaw.local>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-04-11 23:07:05 +02:00
Tom Hudson
6f1d8c50f1
Fix code review issues: server loading, subdir nav, chart perf
...
- Load server list dynamically from servers.json for Docker frontend/dual modes
- Copy servers.json to web root in entrypoint.sh for frontend/dual modes
- Change back link from href="/" to href="./" for subdirectory installs
- Use binary search for visible chart data range (O(log n) vs O(n))
- Add 200ms minimum interval between pings to limit sample rate
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 18:27:15 -04:00
Tom Hudson
c5f5c30b28
Add internet stability test feature
...
Add a prolonged ping-based stability test with real-time canvas chart,
stats (avg/min/max/jitter/packet loss), stability rating, external ping
targets, CSV export, and Docker support. Link from main page to stability test.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 18:07:20 -04:00
dependabot[bot]
e1310d88a3
Bump docker/setup-qemu-action from 3 to 4 ( #760 )
...
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action ) from 3 to 4.
- [Release notes](https://github.com/docker/setup-qemu-action/releases )
- [Commits](https://github.com/docker/setup-qemu-action/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
dependency-version: '4'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-11 20:16:35 +01:00
dependabot[bot]
7c0b191a21
Bump docker/build-push-action from 6 to 7 ( #762 )
...
Bumps [docker/build-push-action](https://github.com/docker/build-push-action ) from 6 to 7.
- [Release notes](https://github.com/docker/build-push-action/releases )
- [Commits](https://github.com/docker/build-push-action/compare/v6...v7 )
---
updated-dependencies:
- dependency-name: docker/build-push-action
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-11 20:16:09 +01:00
dependabot[bot]
983f0cec83
Bump docker/setup-buildx-action from 3 to 4 ( #759 )
...
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action ) from 3 to 4.
- [Release notes](https://github.com/docker/setup-buildx-action/releases )
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
dependency-version: '4'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-11 20:15:50 +01:00
dependabot[bot]
7b62e8417f
Bump docker/metadata-action from 5 to 6 ( #761 )
...
Bumps [docker/metadata-action](https://github.com/docker/metadata-action ) from 5 to 6.
- [Release notes](https://github.com/docker/metadata-action/releases )
- [Commits](https://github.com/docker/metadata-action/compare/v5...v6 )
---
updated-dependencies:
- dependency-name: docker/metadata-action
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-11 20:13:55 +01:00
dependabot[bot]
82b7a2629d
Bump docker/login-action from 3 to 4 ( #763 )
...
Bumps [docker/login-action](https://github.com/docker/login-action ) from 3 to 4.
- [Release notes](https://github.com/docker/login-action/releases )
- [Commits](https://github.com/docker/login-action/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: docker/login-action
dependency-version: '4'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-11 20:13:06 +01:00