INNER CODE UNIT · Python
cleanup_releases
keiyoushi/extensions-source · .github/scripts/cleanup-releases.py:98
def cleanup_releases(referenced: set[str]) -> tuple[int, int]:
deleted_assets = 0
deleted_releases = 0
releases = get_pages(f"repos/{REPO_NAME}/releases")
for release in releases:
assets = get_pages(f"repos/{REPO_NAME}/releases/{release['id']}/assets")
# Fast path: every asset is unreferenced -> delete the release in one call,
# which takes the assets with it.
if assets and not any(
asset["browser_download_url"] in referenced for asset in assets
):
print(
f"Deleting release {release['tag_name']} "
f"({len(assets)} unreferenced assets)"
)
run_gh(