Version Control for Snippets: Refactor personal snippets to use repositories

Important: At the moment, the target of the functionality will be ProjectSnippet. Once we have a working workflow, we will adapt the functionality for PersonalSnippet.

Important: All the new functionality must be implemented behind the feature flag :version_snippets. Besides, it has to be scoped for projects. Therefore, instead of checking if the feature flag is enabled or not (Feature.enabled?(:version_snippets)), we will check if the feature flag is enabled for specific projects (Feature.enabled?(:version_snippets, project)). This way, for testing purposes, we can enable the feature flag on the project gitlab-org/gitlab for example, instead of enabling it globally.

This issue has TBD yet, but in #32059 (closed) are some of the available options.

Assignee Loading
Time tracking Loading