Fix sync-releases workflow and guard its manual trigger - #483
Merged
jolelievre merged 3 commits intoAug 19, 2026
Conversation
Docker Hub v2 API refuses to paginate past 1000 results for anonymous requests, which broke the nightly backlog sync: "pagination offset too large for anonymous requests; sign in to page further" The registry API returns the full tag list in a single response using an anonymous pull token, so no pagination or account is needed.
Manual workflow_dispatch runs now require the actor to be an active member of the prestashop-sa team, checked through the shared team-guard action from PrestaShop/.github. Scheduled runs are unaffected. Bump checkout and setup-python to v5 to clear the Node 20 deprecation warnings.
This was referenced Aug 19, 2026
Merged
mattgoud
approved these changes
Aug 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The nightly
sync-releasesworkflow has been failing for a few days (example run):Docker Hub changed its API policy: anonymous requests can no longer paginate past ~1000 results. The backlog step lists all
library/phptags (~15,600 today) throughhub.docker.com/v2/repositorieswithpage_size=100, so it dies around page 10.Fix
DockerApi.get_tags()now uses the Docker registry API instead of the Docker Hub one:auth.docker.ioregistry-1.docker.io/v2/<image>/tags/list, which returns the full tag list in a single response — no pagination limit, no account neededThe return shape is unchanged (a list of
{'name': <tag>}dicts), sobacklog.pyandtag_manager.pywork as before. The short-lived token is never served from the requests cache, andLinkheader pagination is handled defensively in case the registry starts paginating one day.Verified against the live API: 15,590 tags returned, all
X.Y-apacheversions found (5.3 → 8.5), with and without cache, on the pinnedrequests-cache0.7.5. All 30 unit tests pass, flake8 clean.Guarded manual trigger
Manual
workflow_dispatchruns (the trigger already existed) are now restricted to active members of the prestashop-sa team, through the sharedteam-guardaction fromPrestaShop/.github. Scheduled runs are unaffected by the guard. The check uses the existingJARVIS_TOKENsecret (already hasread:org, same as in PrestaShop core workflows).team-guardaction must land onPrestaShop/.githubmasterfirst (PR to follow) — until then a manual dispatch would fail at the guard step. The scheduled run is not affected either way.Also bumps
actions/checkoutandactions/setup-pythonv2 → v5 to clear the Node 20 deprecation warnings visible in the failing runs.