// ModVuln returns import vulnerability analysis for the given go.mod URI. // Concurrent requests are combined into a single command. func (s *Snapshot) ModVuln(ctx context.Context, modURI protocol.DocumentURI) (*vulncheck.Result, error) { … } const GoVersionForVulnTest … // modVulnImpl queries the vulndb and reports which vulnerabilities // apply to this snapshot. The result contains a set of packages, // grouped by vuln ID and by module. This implements the "import-based" // vulnerability report on go.mod files. func modVulnImpl(ctx context.Context, snapshot *Snapshot) (*vulncheck.Result, error) { … } // TODO(rfindley): this function was exposed during refactoring. Reconsider it. func GetEnv(snapshot *Snapshot, key string) string { … } // toPackagePathSet transforms the metadata to a set of package paths. func toPackagePathSet(mds []*metadata.Package) map[metadata.PackagePath]bool { … } func fixedVersion(modulePath string, affected []osv.Affected) string { … } // latestFixed returns the latest fixed version in the list of affected ranges, // or the empty string if there are no fixed versions. func latestFixed(modulePath string, as []osv.Affected) string { … } // versionString prepends a version string prefix (`v` or `go` // depending on the modulePath) to the given semver-style version string. func versionString(modulePath, version string) string { … } // semverToGoTag returns the Go standard library repository tag corresponding // to semver, a version string without the initial "v". // Go tags differ from standard semantic versions in a few ways, // such as beginning with "go" instead of "v". func semverToGoTag(v string) string { … } // finalDigitsIndex returns the index of the first digit in the sequence of digits ending s. // If s doesn't end in digits, it returns -1. func finalDigitsIndex(s string) int { … } // osvsByModule runs a govulncheck database query. func osvsByModule(ctx context.Context, db, moduleVersion string) ([]*osv.Entry, error) { … } type osvReader … func (h *osvReader) OSV(entry *osv.Entry) error { … } func (h *osvReader) Config(config *govulncheck.Config) error { … } func (h *osvReader) Finding(finding *govulncheck.Finding) error { … } func (h *osvReader) Progress(progress *govulncheck.Progress) error { … }