This introduces a fallback compatibility parser, identical to the one introduced in https://github.com/discourse/discourse/pull/22714
This will allow Docker Manager to parse new compatibility files, even when running on older Discourse instances. This is only intended as a temporary solution, and will be removed before the Discourse 3.2 release.
* FEATURE: Adds support for git tags
* Detects when the tracked branch has been deleted from `origin` and forces a rebuild on the command line
* Allows updating when a tag is tracked and the tag was moved to a new commit
* Improves support for shallow clones
* Works with partial clones
* Adds lots of specs for git commands and replaces the existing specs. All specs use real git repositories instead of mocks