Documentation
¶
Index ¶
- func ConstructUnitURL(fullPath, modulePath, requestedVersion string) string
- func DisplayVersion(modulePath, requestedVersion, resolvedVersion string) string
- func LinkVersion(modulePath, requestedVersion, resolvedVersion string) string
- func ParseVersionsDetails(vd *VersionsDetails) (_ *internal.SymbolHistory, err error)
- type Symbol
- type VersionList
- type VersionListKey
- type VersionSummary
- type VersionsDetails
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConstructUnitURL ¶
ConstructUnitURL returns a URL path that refers to the given unit at the requested version. If requestedVersion is "latest", then the resulting path has no version; otherwise, it has requestedVersion.
func DisplayVersion ¶
DisplayVersion returns the version string, formatted for display.
func LinkVersion ¶
LinkVersion returns the version string, suitable for use in a link to this site. See TestLinkVersion for examples.
func ParseVersionsDetails ¶
func ParseVersionsDetails(vd *VersionsDetails) (_ *internal.SymbolHistory, err error)
ParseVersionsDetails returns a map of versionToNameToUnitSymbol based on data from the provided VersionDetails.
Types ¶
type Symbol ¶
type Symbol struct {
// Name is name of the symbol. At a given package version, name must be
// unique.
Name string
// Synopsis is the one line description of the symbol that is displayed.
Synopsis string
// Section is the section that a symbol appears in.
Section internal.SymbolSection
// Kind is the type of a symbol, which is either a constant, variable,
// function, type, field or method.
Kind internal.SymbolKind
// Link is the link to the symbol name on pkg.go.dev.
Link string
// Children contain the child symbols for this symbol. This will
// only be populated when the SymbolType is "Type". For example, the
// children of net/http.Handler are FileServer, NotFoundHandler,
// RedirectHandler, StripPrefix, and TimeoutHandler. Each child
// symbol will have ParentName set to the Name of this type.
Children []*Symbol
// Builds lists all of the build contexts supported by the symbol, it is
// only available for limited set of builds. If the symbol supports all
// build contexts, Builds will be nil.
Builds []string
// New indicates that the symbol is new as of the version where it is
// present. For example, if type Client was introduced in v1.0.0 and
// Client.Timeout was introduced in v1.1.0, New will be false for Client
// and true for Client.Timeout if this Symbol corresponds to v1.1.0.
New bool
// contains filtered or unexported fields
}
Symbol is an element in the package API. A symbol can be a constant, variable, function, type, field or method.
type VersionList ¶
type VersionList struct {
VersionListKey
// Deprecated indicates whether the major version is deprecated.
Deprecated bool
// DeprecationComment holds the reason for deprecation, if any.
DeprecationComment string
// Versions holds the nested version summaries, organized in descending
// semver order.
Versions []*VersionSummary
}
VersionList holds all versions corresponding to a unique (module path, major version) tuple in the version hierarchy.
type VersionListKey ¶
type VersionListKey struct {
// ModulePath is the module path of this major version.
ModulePath string
// Major is the major version string (e.g. v1, v2)
Major string
// Incompatible indicates whether the VersionListKey represents an
// incompatible module version.
Incompatible bool
}
VersionListKey identifies a version list on the versions tab. We have a separate VersionList for each major version of a module series. Notably we have more version lists than module paths: v0 and v1 module versions are in separate version lists, despite having the same module path. Also note that major version isn't sufficient as a key: there are packages contained in the same major version of different modules, for example github.com/hashicorp/vault/api, which exists in v1 of both of github.com/hashicorp/vault and github.com/hashicorp/vault/api.
type VersionSummary ¶
type VersionSummary struct {
CommitTime string
// Link to this version, for use in the anchor href.
Link string
Version string
Retracted bool
RetractionRationale string
IsMinor bool
Symbols [][]*Symbol
Vulns []vuln.Vuln
}
VersionSummary holds data required to format the version link on the versions tab.
type VersionsDetails ¶
type VersionsDetails struct {
// ThisModule is the slice of VersionLists with the same module path as the
// current package.
ThisModule []*VersionList
// IncompatibleModules is the slice of the VersionsLists with the same
// module path as the current package, but with incompatible versions.
IncompatibleModules []*VersionList
// OtherModules is the slice of VersionLists with a different module path
// from the current package.
OtherModules []string
}
VersionsDetails contains the hierarchy of version summary information used to populate the version tab. Version information is organized into separate lists, one for each (ModulePath, Major Version) pair.
func FetchVersionsDetails ¶
func FetchVersionsDetails(ctx context.Context, ds internal.DataSource, um *internal.UnitMeta, vc *vuln.Client) (*VersionsDetails, error)