#!/usr/bin/env bash # Delete test repositories a live test run left behind (it died before its # teardown): the test operator's nisse-e2e-* repositories older than a day, # or of any age with --all. Needs NISSE_OPERATOR_TOKEN (from .env). # # scripts/e2e-cleanup.sh older than a day # scripts/e2e-cleanup.sh --all every one, e.g. when nothing is running set -euo pipefail cd "$(dirname "$0")/.." if [ -f .env ]; then set -a; . ./.env; set +a; fi exec uv run python - "$@" <<'PY' import os, sys from datetime import datetime, timedelta, timezone from nisse_core.gitea import GiteaClient gitea = GiteaClient("https://gitea.dongar.net", os.environ["NISSE_OPERATOR_TOKEN"]) cutoff = datetime.now(timezone.utc) - (timedelta(0) if "--all" in sys.argv else timedelta(days=1)) page, gone = 1, 0 while True: repos = gitea._request("GET", "/user/repos", params={"page": page, "limit": 50}) if not repos: break for repo in repos: created = datetime.fromisoformat(repo["created_at"].replace("Z", "+00:00")) if repo["name"].startswith("nisse-e2e-") and created < cutoff: gitea._request("DELETE", f"/repos/{repo['full_name']}") print("deleted", repo["full_name"]) gone += 1 page += 1 print(f"{gone} deleted") PY