RepoFlow Team · April 30, 2025

Cache GitHub Releases with a Universal Repository

Keep your CI pipeline reliable by caching GitHub and GitLab releases

Many CI/CD pipelines rely on downloading release binaries or tools directly from GitHub or GitLab. This is common for CLI tools such as kubectl, terraform, or poetry, where a specific release file is fetched during the build process.

While convenient, these direct links create a fragile dependency on third-party services. If GitHub or GitLab experiences downtime, changes the structure, or imposes rate limits, your pipeline can fail unexpectedly. This can be especially problematic in environments where reliability and repeatability are critical.
Using a Universal Repository to Cache External Releases
RepoFlow provides a solution by allowing you to cache these remote release files using a universal repository. The universal repository acts as a transparent proxy that fetches, stores, and serves remote files under your control.

Once cached, future requests for the same file are served directly from RepoFlow storage, reducing external dependencies and increasing build reliability.
How to set up
RepoFlow lets you add credentials and enable smart caching
  1. Go to your workspace and create a new Universal remote repository
  2. Set the Repository URL to GitHub, GitLab or any other source.
    Make sure to include the required placeholders in the URL:
    {package-name}, {version} and {file}

    GitHub example:
    https://github.com/{package-name}/releases/download/{version}/{file}
    GitLab example
    https://gitlab.com/{package-name}/-/archive/{version}/{file}

  3. Enable the remote cache to make sure releases will be cached.
  4. Click Create.