Skip to content

Storage & Eviction

Each repository has a cache quota that applies across its GitHub Actions, Git LFS, build, and regular package-manager cache entries.

Default
Per-repository quota25 GB
Unused entry TTL7 days

Custom quotas can be configured per repository via the Avrea console or the CLI.

When a repository exceeds its quota, we evict the entries using least-recently-used (LRU) ordering:

  1. Entries are sorted by last access time.
  2. The oldest entries are deleted first until the repository is back within quota.
  3. Entries unused for more than 7 days are eligible for eviction regardless of quota.

Storage is shared across all cache types within a repository:

  • gha: GitHub Actions cache entries
  • lfs: Git LFS objects
  • go-build, bazel-build, gradle-build, turbo-build, sccache-build, ccache-build, maven-build, nix-build: build cache entries
  • packages: cached package registry artifacts

Private Swift package payloads do not count against a repository's regular cache quota. They are stored in organization-isolated artifact storage. Public Swift packages use shared package storage.

Unused private archives and manifests are eligible for eviction after seven days. A small immutable release record is retained so an evicted payload can be rebuilt and verified before it is served again. Accessing an archive or one of its manifests keeps the complete snapshot hot.

The organization artifact budget is currently operational and alert-only. Exceeding it does not reject package resolution or immediately delete data; cold payloads continue to follow the normal retention policy.