Documentation
¶
Index ¶
- Constants
- func GetTemplateFile(trivyTemplate string) (string, error)
- func IsImageNotFoundErr(logs string) bool
- func RunTrivyScan(image, version, templateFile, output string) (bool, error)
- type SarifMetadata
- type SecurityScanOpts
- type SecurityScanRepo
- func (r *SecurityScanRepo) GetImagesToScan(versionToScan *semver.Version) ([]string, error)
- func (r *SecurityScanRepo) RunGithubSarifScan(versionToScan *semver.Version, sarifTplFile string) error
- func (r *SecurityScanRepo) RunMarkdownScan(versionToScan *semver.Version, markdownTplFile string) error
- func (r *SecurityScanRepo) UploadSecurityScanToGithub(fileName, versionTag string) error
- type SecurityScanner
Constants ¶
View Source
const MarkdownTrivyTemplate = `` /* 464-byte string literal not displayed */
Template for markdown docs
View Source
const SarifTrivyTemplate = `` /* 3578-byte string literal not displayed */
Template for Sarif files to be uploaded to Github, which displays results on the 'Security' tab. Taken from https://github.com/aquasecurity/trivy/blob/main/contrib/sarif.tpl
Variables ¶
This section is empty.
Functions ¶
func GetTemplateFile ¶
Create tempoarary file that contains the trivy template Trivy CLI only accepts files as input for a template, so this is a workaround
func IsImageNotFoundErr ¶
func RunTrivyScan ¶
Runs trivy scan command returns if trivy scan ran successfully and error if there was one
Types ¶
type SarifMetadata ¶
type SecurityScanOpts ¶
type SecurityScanOpts struct {
// The following directory structure will be created in your output dir.
/*
OUTPUT_DIR/
├─ markdown_results/
│ ├─ repo1/
│ │ ├─ 1.4.12/
│ │ ├─ 1.5.0/
│ ├─ repo2/
│ │ ├─ 1.4.13/
│ │ ├─ 1.5.1/
├─ sarif_results/
│ ├─ repo1/
│ │ ├─ 1.4.12/
│ │ ├─ 1.5.0/
│ ├─ repo2/
│ │ ├─ 1.4.13/
│ │ ├─ 1.5.1/
*/
OutputDir string
// A mapping of version constraints to images scanned.
// If 1.6 had images "gloo", "discovery" and 1.7 introduced a new image "rate-limit",
// the map would look like:
/*
' >= 1.6': ["gloo", "discovery"]
' >= 1.7': ["gloo", "discovery", "rate-limit"]
*/
// where the patch number is explicitly not set so that these versions can match all
// 1.6.x-x releases
ImagesPerVersion map[string][]string
// VersionConstraint on releases to security scan
// any releases that do not pass this constraint will not be security scanned.
// If left empty, all versions will be scanned
VersionConstraint *semver.Constraints
// Required: image repo (quay.io, grc.io, gchr.io)
ImageRepo string
// Uploads Sarif file to github security code-scanning results
// e.g. https://github.com/solo-io/gloo/security/code-scanning
UploadCodeScanToGithub bool
}
type SecurityScanRepo ¶
type SecurityScanRepo struct {
Repo string
Owner string
Opts *SecurityScanOpts
}
func (*SecurityScanRepo) GetImagesToScan ¶
func (r *SecurityScanRepo) GetImagesToScan(versionToScan *semver.Version) ([]string, error)
func (*SecurityScanRepo) RunGithubSarifScan ¶
func (r *SecurityScanRepo) RunGithubSarifScan(versionToScan *semver.Version, sarifTplFile string) error
func (*SecurityScanRepo) RunMarkdownScan ¶
func (r *SecurityScanRepo) RunMarkdownScan(versionToScan *semver.Version, markdownTplFile string) error
func (*SecurityScanRepo) UploadSecurityScanToGithub ¶
func (r *SecurityScanRepo) UploadSecurityScanToGithub(fileName, versionTag string) error
type SecurityScanner ¶
type SecurityScanner struct {
Repos []*SecurityScanRepo
}
func (*SecurityScanner) GenerateSecurityScans ¶
func (s *SecurityScanner) GenerateSecurityScans(ctx context.Context) error
Main method to call on SecurityScanner which generates .md and .sarif files in OutputDir as defined above per repo. If UploadCodeScanToGithub is true, sarif files will be uploaded to the repository's code-scanning endpoint.
Click to show internal directories.
Click to hide internal directories.