5b4d8ec6cf
When GITEA_TOKEN/--token-file aren't set and the script runs inside a Gitea-host clone, reuse git's stored credential: the token embedded in the remote URL, else a configured credential helper (git credential fill, no prompting). Switch to HTTP Basic auth (user:token) when a username is known so both API tokens and the embedded-URL/helper credential work; keep the token header for a bare GITEA_TOKEN. Banner reports the source. Live-verified: env token + git credential helper (as kisfenyo) both list and resolve OCI sizes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2.6 KiB
2.6 KiB
Changelog — misc-scripts
All notable changes to the operator helper scripts. Newest on top.
2026-06-17 (later)
Changed — gitea-image-prune.sh
- Credential auto-discovery: when
GITEA_TOKEN/--token-fileare not set and the script runs inside a Gitea-host clone, it reuses git's stored credential — the token embedded in the remote URL, else a configured credential helper (git credential fill, never prompting). Lets you run it from a configured clone with no token. Startup banner reports the credential source + user. - Auth now uses HTTP Basic (
user:token) when a username is known (so both API tokens and the embedded-URL/helper credential work), falling back to theAuthorization: tokenheader for a bareGITEA_TOKEN. Live-verified both paths (env token; git credential helper askisfenyo).
2026-06-17
Added — gitea-image-prune.sh
- New operator CLI to inspect and prune old container images in the self-hosted
Gitea registry (
gitea.dooplex.hu, owneradmin) and reclaim disk on the Longhorn-backed packages PVC. Purecurl+jq; interactive menu + scriptable flags. Safe dry-run default. - Modes:
list(per-tag upload date + apparent image size, newest-first, shared-layer caveat),prune(--keep Nor--older-than DAYS; always protects^latest$+--protectregexes),reclaim(delete orphaned manifest versions + trigger/await thecleanup_packagesGC cron).--measuredoes best-effort before/afterduviakubectl. - Implements the three-step reclaim mechanism proven live on Gitea 1.26.2:
deleting a tag frees only the index pointer; the orphaned
sha256:manifest versions must also be deleted (defaultcleanup_packagesdoes not remove untagged manifests); the cron then GCs the unreferenced blobs. Orphan detection is fail-closed. - Safety: orders by upload date (never parses mixed
v/bare tags), checks every HTTP status, never echoes/logs the token, audit log per run, typed confirmation on--apply(stricter for--all). - Token via
GITEA_TOKEN/--token-file. Minimal scopes documented in README:read:package(list),write:package(delete),read:admin(cron list),write:admin(cron trigger). - README section added documenting usage, scopes, the reclaim caveat, the live verification result, and the native cleanup-rule recommendation.
Changed — Gitea instance (operational, not a script change)
- Added
[cron.cleanup_packages] RUN_AT_START = trueto Gitea'sapp.ini(on the data PVC) so the package GC also runs on every Gitea restart. Enables reclaim without awrite:admintoken. Backup atapp.ini.bak.prune-spike.