As SetReferences/GetReferences will ultimately be implemented by the drivers (API Gitea, internal Gitea), they will be methods implemented by providers.
There are a number of providers, each of them designed to simplify the implementation of the driver by supporting variable number of strongly typed arguments. At the moment each of those provider base types also implement all methods that have the same signature such as ToFormat, GetImplementation etc. That is a lot of redundancy and it will keep growing.
To keep the provider base class DRY, the ProviderBase class is introduced, with all methods that do not have variable signatures.