Storage & Eviction
Storage quotas
Section titled “Storage quotas”Each repository has a cache quota that applies across its GitHub Actions, Git LFS, build, and regular package-manager cache entries.
| Default | |
|---|---|
| Per-repository quota | 25 GB |
| Unused entry TTL | 7 days |
Custom quotas can be configured per repository via the Avrea console or the CLI.
Eviction policy
Section titled “Eviction policy”When a repository exceeds its quota, we evict the entries using least-recently-used (LRU) ordering:
- Entries are sorted by last access time.
- The oldest entries are deleted first until the repository is back within quota.
- Entries unused for more than 7 days are eligible for eviction regardless of quota.
Cache types
Section titled “Cache types”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 storage
Section titled “Private Swift package storage”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.