def METHOD_NAME(dest_dir: Path):
    registry = Registry()
    print("Starting", registry)
    count = 0
    for repo in registry.iter_repositories(limit=500):
        # list tags
        try:
            tags = registry.list_tags(repo_name=repo)
        except httpx.HTTPStatusError as err:
            print(f"Failed to get tags from {repo=}", err, FAILED)
            continue
        # get manifest
        folder = dest_dir / Path(repo)
        folder.mkdir(parents=True, exist_ok=True)
        for tag in tags:
            path = folder / f"metadata-{tag}.json"
            if not path.exists():
                try:
                    manifest = registry.get_manifest(repo_name=repo, repo_reference=tag)
                    labels = get_labels(
                        image_v1=manifest["history"][0]["v1Compatibility"]
                    )
                    meta = extract_metadata(labels)
                    meta.update(extract_extra_service_metadata(labels))
                    with path.open("wt") as fh:
                        json.dump(meta, fh, indent=1)
                    print("downloaded", path, SUCCESS)
                    count += 1
                except Exception as err:  # pylint: disable=broad-except
                    print("Failed", path, err, FAILED)
                    path.unlink(missing_ok=True)
            else:
                print("found", path, SKIP)
                count += 1
    print("\nDownloaded", count, "metadata files from", registry.data.url)