Documentation
¶
Index ¶
- Constants
- Variables
- func ImageTags(image *Image) []string
- func PackageToPackageUrl(pkp Package) *packageurl.PackageURL
- func SupportedTag(image *Image) string
- func Tags(image *Image) []string
- func ToAdvisoryUrl(pkg Package) string
- func ToPackageUrl(url string) (packageurl.PackageURL, error)
- type Advisory
- type BaseImage
- type BaseImagesByDiffIdsQuery
- type BaseImagesResult
- type Cve
- type Cwe
- type Descriptor
- type Distro
- type Image
- type ImageSource
- type IndexImage
- type IndexManifestList
- type IndexResult
- type LayerMapping
- type Location
- type ManifestList
- type Package
- type Platform
- type Reference
- type Report
- type Repository
- type Sbom
- type Score
- type Source
- type Url
Constants ¶
View Source
const ( Success string = "success" Failed string = "failed" )
Variables ¶
View Source
var NamespaceMapping = map[string]string{
"oracle": "oraclelinux",
"ol": "oraclelinux",
"amazon": "amazonlinux",
"amzn": "amazonlinux",
"rhel": "redhatlinux",
}
View Source
var PackageTypeMapping = map[string]string{
"apk": "alpine",
"debian": "deb",
"ubuntu": "deb",
"node-pkg": "npm",
"java": "maven",
"gobinary": "golang",
"go": "golang",
"go-module": "golang",
"java-archive": "maven",
"jenkins-plugin": "maven",
"python": "pypi",
"python-pkg": "pypi",
"jar": "maven",
"gemspec": "gem",
"centos": "rpm",
"oracle": "rpm",
"ol": "rpm",
"amzn": "rpm",
"amazon": "rpm",
"redhat": "rpm",
"photon": "rpm",
"sles": "rpm",
"rhel": "rpm",
"pip": "pypi",
"rubygems": "gem",
"rust": "cargo",
"crates.io": "cargo",
"packagist": "composer",
}
Functions ¶
func PackageToPackageUrl ¶ added in v0.0.7
func PackageToPackageUrl(pkp Package) *packageurl.PackageURL
func SupportedTag ¶ added in v0.0.8
func ToAdvisoryUrl ¶
func ToPackageUrl ¶
Types ¶
type Advisory ¶
type Advisory struct { Source string `edn:"vulnerability/source" json:"source"` SourceId string `edn:"vulnerability/source-id" json:"source_id"` References []Reference `edn:"vulnerability/references" json:"references"` Description string `edn:"vulnerability/description" json:"description,omitempty"` Cwes []Cwe `edn:"vulnerability/cwes" json:"cwes,omitempty"` Urls []Url `edn:"vulnerability/urls" json:"urls,omitempty"` }
type BaseImage ¶ added in v0.0.11
type BaseImage struct { DiffIds []string `graphql:"matches" json:"diff_ids,omitempty"` Images []struct { CreatedAt string `graphql:"createdAt" json:"created_at,omitempty"` Digest string `graphql:"digest" json:"digest,omitempty"` Repository struct { Badge string `graphql:"badge" json:"badge,omitempty"` Host string `graphql:"hostName" json:"host,omitempty"` Repo string `graphql:"repoName" json:"repo,omitempty"` } `graphql:"repository" json:"repository"` Tags []struct { Current bool `graphql:"current" json:"current"` Name string `graphql:"name" json:"name,omitempty"` Supported bool `graphql:"supported" json:"supported"` } `graphql:"tags" json:"tags,omitempty"` DockerFile struct { Commit struct { Repository struct { Org string `graphql:"orgName" json:"org,omitempty"` Repo string `graphql:"repoName" json:"repo,omitempty"` } `graphql:"repository" json:"repository,omitempty"` Sha string `graphql:"sha" json:"sha,omitempty"` } `json:"commit,omitempty"` Path string `graphql:"path" json:"path,omitempty"` } `graphql:"dockerFile" json:"docker_file,omitempty"` VulnerabilityReport struct { Critical int `graphql:"critical" json:"critical,omitempty"` High int `graphql:"high" json:"high,omitempty"` Medium int `graphql:"medium" json:"medium,omitempty"` Low int `graphql:"low" json:"low,omitempty"` Unspecified int `graphql:"unspecified" json:"unspecified,omitempty"` Total int `graphql:"total" json:"total,omitempty"` } `graphql:"vulnerabilityReport" json:"vulnerability_report"` } `graphql:"images" json:"images,omitempty"` }
type BaseImagesByDiffIdsQuery ¶ added in v0.0.11
type BaseImagesByDiffIdsQuery struct {
ImagesByDiffIds []BaseImage `graphql:"imagesByDiffIds(context: {}, diffIds: $diffIds)"`
}
type BaseImagesResult ¶ added in v0.0.11
type Cve ¶
type Cve struct { Purl string `edn:"purl" json:"purl"` Source string `edn:"source" json:"source"` SourceId string `edn:"source-id" json:"source_id"` VulnerableRange string `edn:"vulnerable-range" json:"vulnerable_range"` AdvisoryUrl string `edn:"url" json:"-"` FixedBy string `edn:"fixed-by" json:"fixed_by,omitempty"` Advisory *Advisory `edn:"v" json:"vendor_advisory,omitempty"` Cve *Advisory `edn:"cve" json:"nist_cve,omitempty"` }
type Descriptor ¶
type Image ¶ added in v0.0.8
type Image struct { TeamId string `edn:"atomist/team-id"` Digest string `edn:"docker.image/digest"` CreatedAt time.Time `edn:"docker.image/created-at"` Tags []string `edn:"docker.image/tags"` Tag []struct { Name string `edn:"docker.tag/name"` } `edn:"docker.image/tag"` ManifestList []ManifestList `edn:"docker.image/manifest-list"` Repository Repository `edn:"docker.image/repository"` File struct { Path string `edn:"git.file/path"` } `edn:"docker.image/file"` Commit struct { Sha string `edn:"git.commit/sha"` Repo struct { Name string `edn:"git.repo/name"` Org struct { Name string `edn:"git.org/name"` } `edn:"git.repo/org"` } `edn:"git.commit/repo"` } `edn:"docker.image/commit"` Report []Report `edn:"vulnerability.report/report"` }
type ImageSource ¶
type ImageSource struct { Name string `json:"name"` Digest string `json:"digest"` Tags *[]string `json:"tags,omitempty"` Manifest *v1.Manifest `json:"manifest"` Config *v1.ConfigFile `json:"config"` RawManifest string `json:"raw_manifest"` RawConfig string `json:"raw_config"` Distro Distro `json:"distro"` Platform Platform `json:"platform"` Size int64 `json:"size"` }
type IndexImage ¶ added in v0.0.8
type IndexImage struct { Digest string `json:"digest"` CreatedAt time.Time `json:"createdAt"` Platform struct { Os string `json:"os"` Arch string `json:"arch"` Variant string `json:"variant"` } `json:"platform"` Layers []struct { Digest string `json:"digest"` Size int `json:"size"` LastModified time.Time `json:"lastModified"` } `json:"layers"` DigestChainId string `json:"digestChainId"` DiffIdChainId string `json:"diffIdChainId"` }
type IndexManifestList ¶ added in v0.0.8
type IndexManifestList struct { Name string `json:"name"` Tags []string `json:"tags"` Digest string `json:"digest"` Images []IndexImage `json:"images"` }
type IndexResult ¶
type LayerMapping ¶
type ManifestList ¶ added in v0.0.8
type Package ¶
type Package struct { Type string `json:"type"` Namespace string `json:"namespace,omitempty"` Name string `json:"name"` Version string `json:"version"` Purl string `json:"purl"` Author string `json:"author,omitempty"` Description string `json:"description,omitempty"` Licenses []string `json:"licenses,omitempty"` Url string `json:"url,omitempty"` Size int `json:"size,omitempty"` InstalledSize int `json:"installed_size,omitempty"` Locations []Location `json:"locations"` Files []Location `json:"files,omitempty"` Parent string `json:"parent,omitempty"` }
func MergePackages ¶
func MergePackages(results ...IndexResult) []Package
func NormalizePackages ¶
type Report ¶ added in v0.0.8
type Report struct { Total int64 `edn:"vulnerability.report/total"` Critical int64 `edn:"vulnerability.report/critical"` High int64 `edn:"vulnerability.report/high"` Medium int64 `edn:"vulnerability.report/medium"` Low int64 `edn:"vulnerability.report/low"` Unspecified int64 `edn:"vulnerability.report/unspecified"` }
type Repository ¶ added in v0.0.8
type Sbom ¶
type Sbom struct { Source Source `json:"source"` Artifacts []Package `json:"artifacts"` Vulnerabilities []Cve `json:"vulnerabilities,omitempty"` Descriptor Descriptor `json:"descriptor"` }
type Source ¶
type Source struct { Type string `json:"type"` Image ImageSource `json:"image"` BaseImages []BaseImage `json:"base_images,omitempty"` }
Click to show internal directories.
Click to hide internal directories.