Geo: Self Service Framework - Snippet verification
### Problem to solve
* Snippets Repository verification
* Generalize repository verification to be used for the self-service framework
### Intended users
This is relevant for GitLab customers and users who already have a working Geo setup and/or who are considering enabling Geo for either DR or Geo replication features.
### Further details
Our customers have a reasonable expectation that new data types being made in Geo in a timely manner. This is a step towards adding another data type and it will bring us close to finishing work on [adding all unreplicated data types](https://gitlab.com/groups/gitlab-org/-/epics/893)
### Proposal
This epic serves two purposes:
1. Provide verification support for snippets
1. Enable repository verification as a feature in the Geo self-service framework
These are the likely steps needed:
* Geo: Generate checksum for the snippet repository on the primary
* Geo: Generate checksum for the snippet on the secondary
* Geo: Ensure Snippet checksum on primary
* Geo: Verify Snippets on secondary
* Geo: Display Snippets verification status
### Permissions and Security
Follow existing permissions and restrictions already in place for other Geo and repositories replication.
### Documentation
In order to make the Geo self-service framework a success we should start writing developer documentation that highlights exactly how to add a new data type. A first iteration should be part of this epic.
### Testing
The testing requirements are similar to other data type. Ideally we should be able to generalize the tests so that anyone using the framework can just reuse the them as shared_examples.
### What does success look like, and how can we measure that?
* Snippets repositories should be verifiable - the status is shown on the admin UI
* Repository verification should be supported in the Geo self-service framework
### What is the type of buyer?
* Ultimate
* Premium
### Links / references
* https://gitlab.com/groups/gitlab-org/-/epics/2161
* https://docs.gitlab.com/ee/user/snippets/
epic