Universal
The Universal Repository introduces a flexible way to manage and proxy artifacts that don’t conform to standard package types like npm, PyPI, Maven, or Docker.
This repository type is ideal for artifacts requiring custom organization and dynamic URL support, making it especially useful for hosting or caching files from sources such as GitHub Releases.
Understanding Placeholders
When creating a Remote Universal Repository, placeholders allow RepoFlow to dynamically replace parts of the URL based on what is being requested.
They act as variables that change automatically depending on the requested package, version, or file name.
Available placeholders:
{package-name}
— the name of the package or project{version}
— the version tag or release name{file}
— the actual file name being downloaded
These placeholders are required so RepoFlow can correctly route and cache requests for different files without needing to hardcode every version or release URL.
Examples of Remote Repository URLs
-
GitHub Releases
URL:https://github.com/{package-name}/releases/download/{version}/{file}
-
GitLab Releases
URL:https://gitlab.com/{package-name}/-/archive/{version}/{file}
Example: Caching GitHub Releases
If you want to cache multiple releases of a project from GitHub, create a Remote Universal Repository with the following URL pattern:
https://github.com/{package-name}/releases/download/{version}/{file}
Then, when requesting a release through RepoFlow, you can access it using:
https://api.repoflow.io/universal/<workspace-name>/<repository-name>/{package-name}/{version}/{file}
For example, to download Git LFS for macOS ARM64 v3.5.1:
https://github.com/git-lfs/git-lfs/releases/download/v3.5.1/git-lfs-darwin-arm64-v3.5.1.zip
You can access it from RepoFlow like this:
https://api.repoflow.io/universal/<workspace-name>/<repository-name>/git-lfs/git-lfs/v3.5.1/git-lfs-darwin-arm64-v3.5.1.zip
This way, RepoFlow will fetch and cache the release automatically, serving it locally for future requests.