18 Commits
Author SHA1 Message Date
peaklabs-dev 152aff5389 refactor(scripts): align the manifest cleanup with the images
- restructure the listing of untagged manifests for ShellCheck SC2015
- expand a group the way shfmt formats it
- keep the pull request images of the variants VARIANTS lists, none here
2026-11-09 19:46:22 +01:00
peaklabs-dev c42222a881 refactor(scripts): move the manifest types to a variable
- rename kept_manifests to manifests_of_kept_tags
2026-11-03 17:41:57 +01:00
peaklabs-dev 75f0ad7459 feat(scripts): use the undocumented docker.io endpoint only for untagged manifests
- read the docker.io tags from the documented tags API
- check that docker.io still has a manifest before deleting it, docker.io also answers 202 to the deletion of a missing manifest
- count every manifest in --delete
2026-11-03 17:41:33 +01:00
peaklabs-dev 1a888610ad fix(scripts): delete the docker.io manifests deleted on ghcr.io
- a run can stop after the deletion on ghcr.io and before the one on docker.io, so every run deletes on docker.io the versions that ghcr.io deleted last
2026-11-03 17:41:10 +01:00
peaklabs-dev 82d89589a2 fix(scripts): delete a shared image after the last index that references it 2026-11-02 23:13:41 +01:00
peaklabs-dev 156f998745 docs(scripts): mark the Docker Hub manifests endpoint as undocumented 2026-11-02 23:06:52 +01:00
peaklabs-dev 6d9c027d1c fix(scripts): count the docker.io layers once where ghcr.io has the manifest
- mark the docker.io sizes with a ~, the manifests that only docker.io has still count their shared layers per image
2026-11-02 23:06:52 +01:00
peaklabs-dev 64d0015622 fix(scripts): delete the unreferenced images before the other indexes
- they came after every index, so the leftovers of earlier runs waited about 190 runs
- delete the oldest first on both registries instead of the manifests that only docker.io has first
2026-11-02 23:06:52 +01:00
peaklabs-dev 67b29ff24a feat(scripts): delete the unused untagged manifests on docker.io
- read every docker.io manifest from the Docker Hub API, tagged or not
- delete the images and attestations of an index right after the index
- show the docker.io sizes next to the ghcr.io ones
2026-11-02 21:58:39 +01:00
peaklabs-dev 549233f6f4 refactor(scripts): list the kept tag exceptions with commas 2026-11-02 00:18:32 +01:00
peaklabs-dev a43fcd8ecb fix(scripts): sign in to ghcr.io and the Docker Hub API 2026-11-02 00:18:31 +01:00
peaklabs-dev 434ac07364 feat(scripts): reword the log lines of the manifest cleanup 2026-11-02 00:18:29 +01:00
peaklabs-dev fb0210f582 feat(scripts): harden the requests of the manifest cleanup
- passes the Docker Hub login to curl on stdin, which keeps it out of the process list
- checks the format of version ids and digests before a delete
2026-10-30 23:00:56 +01:00
peaklabs-dev b001e80fc9 feat(scripts): delete only versions older than a day
- a build pushes its images before the index that tags them, a run in between would see them as unused
- a push while the run reads the pages of versions shows one version twice, the list keeps it once so the second delete does not stop the run
2026-10-30 22:53:11 +01:00
peaklabs-dev 0375750aed feat(scripts): show the ghcr.io sizes in brackets 2026-10-30 22:37:03 +01:00
peaklabs-dev 200042e16b feat(scripts): check twice the delete limit on docker.io
- ghcr.io lists deleted versions for 30 days, a HEAD on docker.io for each would reach thousands per run, which could trigger rate limits
- twice the delete limit covers the last two runs, and manifests only docker.io has sort first, so a copy docker.io refused is deleted within two runs
2026-10-30 22:35:49 +01:00
peaklabs-dev c5d380a4c6 feat(scripts): give each registry a column in the lists
- docker_hub is undefined for a manifest ghcr.io has, as a HEAD on docker.io for every one of them could trigger rate limits
2026-10-30 22:35:49 +01:00
peaklabs-dev 82f1f974f1 feat(scripts): add a script to delete unused manifests
- v3 and 4.0.0-beta.420.x do not follow semantic versioning, KEEP_TAG_EXCEPTIONS keeps them explicitly
2026-10-30 22:15:51 +01:00