Recognize go.mod as a dependency file

Problem to solve

As of Go 1.11, go.mod files are used to identify modules (what Go calls packages) and manage dependencies, like package.json, Gemfile, etc. go.sum files are used like package_lock.json. GitLab should recognize these files as such and link dependencies.

Intended users

Further details

This feature is identified as followup for #27376 (closed) and !27746 (merged) and ties in to &2891.

Proposal

  • Add BlobViewer::GoMod < DependencyManager
  • Add GitLab::DependencyLinker::GoModLinker < BaseLinker
  • Define types for go.mod and go.sum in GitLab::FileDetector
  • Add GoMod to Blob::AUXILIARY_VIEWERS and GoModLinker to Gitlab::DependencyLinker::LINKERS

Permissions and Security

N/A

Documentation

Are blob viewers and dependency linkers documented?

Availability & Testing

  • Add a spec for the two new classes
  • Update the dependency linker spec

What does success look like, and how can we measure that?

go-mod_viewer

What is the type of buyer?

Individual contributor

Is this a cross-stage feature?

No

Links / references