This PR adds a new directory source cataloger that goes beyond reading declarations from the go.mod file.
The go-module-source-file-cataloger uses the golang.org/x/tools/go/packages library to read the "main" module from detected go.mod files. It then uses this main module information to load all the root packages for a given main module. The tool chain then visits all the packages in the import graph whose roots are packages in the discovered root packages.
This PR is currently WIP and needs further discussion around the following sections:
The first draft of what relationships we want to surface from this cataloger should be included as none are implemented at the moment.
License inclusion needs to be added. There is a good example in the go-licenses open source program at how to do this.
Fixes #3451
Type of change
[ ] New feature (non-breaking change which adds functionality)
Checklist:
[ ] I have added unit tests that cover changed behavior
[ ] I have tested my code in common scenarios and confirmed there are no regressions
[ ] I have added comments to my code, particularly in hard-to-understand sections
Description
This PR adds a new directory source cataloger that goes beyond reading declarations from the
go.mod
file.The
go-module-source-file-cataloger
uses thegolang.org/x/tools/go/packages
library to read the "main" module from detectedgo.mod
files. It then uses this main module information to load all theroot
packages for a given main module. The tool chain then visits all the packages in the import graph whose roots are packages in the discoveredroot
packages.This PR is currently WIP and needs further discussion around the following sections:
The first draft of what relationships we want to surface from this cataloger should be included as none are implemented at the moment.
License inclusion needs to be added. There is a good example in the
go-licenses
open source program at how to do this.Fixes #3451
Type of change
Checklist: