mirror of
https://github.com/aquasecurity/trivy.git
synced 2025-12-05 20:40:16 -08:00
113 lines
3.4 KiB
Smarty
113 lines
3.4 KiB
Smarty
{{- /* Template based on https://docs.gitlab.com/ee/user/application_security/container_scanning/#reports-json-format */ -}}
|
|
{
|
|
"version": "15.0.7",
|
|
"scan": {
|
|
"analyzer": {
|
|
"id": "trivy",
|
|
"name": "Trivy",
|
|
"vendor": {
|
|
"name": "Aqua Security"
|
|
},
|
|
"version": "{{ appVersion }}"
|
|
},
|
|
"end_time": "{{ now | date "2006-01-02T15:04:05" }}",
|
|
"scanner": {
|
|
"id": "trivy",
|
|
"name": "Trivy",
|
|
"url": "https://github.com/aquasecurity/trivy/",
|
|
"vendor": {
|
|
"name": "Aqua Security"
|
|
},
|
|
"version": "{{ appVersion }}"
|
|
},
|
|
"start_time": "{{ now | date "2006-01-02T15:04:05" }}",
|
|
"status": "success",
|
|
"type": "container_scanning"
|
|
},
|
|
{{- $image := "Unknown" -}}
|
|
{{- $os := "Unknown" -}}
|
|
{{- range . }}
|
|
{{- if eq .Class "os-pkgs" -}}
|
|
{{- $target := .Target }}
|
|
{{- $image = $target | regexFind "[^\\s]+" }}
|
|
{{- $os = $target | splitList "(" | last | trimSuffix ")" }}
|
|
{{- end }}
|
|
{{- end }}
|
|
"vulnerabilities": [
|
|
{{- $t_first := true }}
|
|
{{- range . }}
|
|
{{- range .Vulnerabilities -}}
|
|
{{- if $t_first -}}
|
|
{{- $t_first = false -}}
|
|
{{ else -}}
|
|
,
|
|
{{- end }}
|
|
{
|
|
"id": "{{ .VulnerabilityID }}",
|
|
"name": {{ .Title | printf "%q" }},
|
|
"description": {{ .Description | printf "%q" }},
|
|
"severity": {{ if eq .Severity "UNKNOWN" -}}
|
|
"Unknown"
|
|
{{- else if eq .Severity "LOW" -}}
|
|
"Low"
|
|
{{- else if eq .Severity "MEDIUM" -}}
|
|
"Medium"
|
|
{{- else if eq .Severity "HIGH" -}}
|
|
"High"
|
|
{{- else if eq .Severity "CRITICAL" -}}
|
|
"Critical"
|
|
{{- else -}}
|
|
"{{ .Severity }}"
|
|
{{- end }},
|
|
"solution": {{ if .FixedVersion -}}
|
|
"Upgrade {{ .PkgName }} to {{ .FixedVersion }}"
|
|
{{- else -}}
|
|
"No solution provided"
|
|
{{- end }},
|
|
"location": {
|
|
"dependency": {
|
|
"package": {
|
|
"name": "{{ .PkgName }}"
|
|
},
|
|
"version": "{{ .InstalledVersion }}"
|
|
},
|
|
{{- /* TODO: No mapping available - https://github.com/aquasecurity/trivy/issues/332 */}}
|
|
"operating_system": "{{ $os }}",
|
|
"image": "{{ $image }}"
|
|
},
|
|
"identifiers": [
|
|
{
|
|
{{- /* TODO: Type not extractable - https://github.com/aquasecurity/trivy-db/pull/24 */}}
|
|
"type": "cve",
|
|
"name": "{{ .VulnerabilityID }}",
|
|
"value": "{{ .VulnerabilityID }}"
|
|
{{- /* cf. https://gitlab.com/gitlab-org/security-products/security-report-schemas/-/blob/e3d280d7f0862ca66a1555ea8b24016a004bb914/dist/container-scanning-report-format.json#L157-179 */}}
|
|
{{- if .PrimaryURL | regexMatch "^(https?|ftp)://.+" -}},
|
|
"url": "{{ .PrimaryURL }}"
|
|
{{- end }}
|
|
}
|
|
],
|
|
"links": [
|
|
{{- $l_first := true -}}
|
|
{{- range .References -}}
|
|
{{- if $l_first -}}
|
|
{{- $l_first = false }}
|
|
{{- else -}}
|
|
,
|
|
{{- end -}}
|
|
{{- if . | regexMatch "^(https?|ftp)://.+" -}}
|
|
{
|
|
"url": "{{ . }}"
|
|
}
|
|
{{- else -}}
|
|
{{- $l_first = true }}
|
|
{{- end -}}
|
|
{{- end }}
|
|
]
|
|
}
|
|
{{- end -}}
|
|
{{- end }}
|
|
],
|
|
"remediations": []
|
|
}
|