Add option to disable seperated caches between protected and not protected branches

Problem to solve

We are currently using caches for dependencies. Until 14.10.1, the caches were shared between protected and not protected branches.

We are currently using a scheduled pipeline on the default branch to regularly update the caches. All other jobs have policy: pull and don't update the cache.
In 14.10.1, the caches got seperated for protected and not protected branches (d032b26a). This breaks our workflow as the scheduled pipeline runs on the protected default branch and will only update the cache for protected branches. All Merge Request Pipelines will have an empty cache as they are not protected. This is a breaking change in a patch version!

Proposal

Implement a setting to disable cache seperation and get the old behaviour back.

Further details

There are workflows and environments, where you don't need to seperate the caches to prevent "poisioning" the cache for protected branches. As example, we are a small development team, everyone has merge permissions. There is no need to seperate the caches, because everyone could just poison the cache from the default branch itself.

Permissions and Security

  • Add expected impact to members with no access (0)
  • Add expected impact to Guest (10) members
  • Add expected impact to Reporter (20) members
  • Add expected impact to Developer (30) members
  • Add expected impact to Maintainer (40) members
  • Add expected impact to Owner (50) members

Documentation

Availability & Testing

Available Tier

GitLab Free GitLab Premium GitLab Ultimate

Feature Usage Metrics

What does success look like, and how can we measure that?

What is the type of buyer?

All tiers

Is this a cross-stage feature?

I don't know how it is seperated but probably only devopsverify

What is the competitive advantage or differentiation for this feature?

Links / references