馃摐 Implement license detection in Gitaly in Go
As part of our effort to [get rid of the Ruby sidecar](https://gitlab.com/groups/gitlab-org/-/epics/2862), we should re-implement license detection (the legal copyright license) in Go. ### Current state License detection is done by the [Licensee gem](https://github.com/licensee/licensee) in the Ruby sidecar. This detects a license shortname (i.e. SPDX name) and that's passed to GitLab rails in the `FindLicenseResponse`. GitLab rails takes this info and uses the shortname to look up all the license info again using the Licensee gem to present it to the user. ### Problems - It's written in Ruby, and we'd like to get rid of that. - We've had an [incident](https://gitlab.com/gitlab-com/gl-infra/production/-/issues/5478) where the license info provided by Gitaly could not be used in GitLab rails and errored out. ### Implementation steps - [x] Extend the `FindLicenseResponse` to contain all the info GitLab rails needs. https://gitlab.com/gitlab-org/gitaly/-/issues/3782 - [x] Get rid of the Licensee gem in GitLab rails. https://gitlab.com/gitlab-org/gitlab/-/issues/341126 - [x] Implement feature parity with the Ruby sidecar, in Go, behind a feature flag. https://gitlab.com/gitlab-org/gitaly/-/issues/3078 - [x] Gradually roll out the Go implementation and phase out the Ruby implementation. https://gitlab.com/gitlab-org/gitaly/-/issues/3759
epic