> These measures mainly impact users freeloading their services
Does it? We use GitLab at work, and we have to use local runners (for regulatory reasons + GitLab runners don't support what we need anyway).
Unlike other CI/CD providers (e.g. teamcity), GitLab Runners don't have a local git cache. So if you need to do a clean clone for an important build (gitlab runners don't clean up well after themselves), you need to re-clone the repo from GitLab.com.
With a 1:2 ratio for storage vs bandwidth (10GB storage, 20GB bandwidth per month), assuming using 1GB in latest commits, and 2GB total repo size (e.g. a vendored dependency that doesn't change frequently):
- 2 runners
- Clean once a week
- 5% of bandwidth per shallow clone
- 40% of bandwidth per month on CI/CD alone.
Leaving space for 6 clones by developers (hope you don't upgrade your dev machines often).
If you're using a submodule in multiple projects you're going to tear through your bandwidth.