{{- $cveIDs := "" -}} {{- $seenCVEs := "" -}} {{- range .IndexedResults -}} {{- if .Result.CVEMatches -}} {{- range $cve_id, $cve_data := .Result.CVEMatches -}} {{- if eq $cve_data.Result "Yes" -}} {{- if not (contains $seenCVEs $cve_id) -}} {{- if $cveIDs -}} {{- $cveIDs = printf "%s, %s" $cveIDs $cve_id -}} {{- else -}} {{- $cveIDs = $cve_id -}} {{- end -}} {{- if $seenCVEs -}} {{- $seenCVEs = printf "%s,%s" $seenCVEs $cve_id -}} {{- else -}} {{- $seenCVEs = $cve_id -}} {{- end -}} {{- end -}} {{- end -}} {{- end -}} {{- end -}} {{- end -}} {{- if not $cveIDs -}} {{- if (index .Analysis.Meta.Params "cve_ids") -}} {{- $cveIDs = (index .Analysis.Meta.Params "cve_ids") -}} {{- end -}} {{- end -}} {{- $productName := "" -}} {{- $oldVersion := "" -}} {{- $newVersion := "" -}} {{- if (index .Analysis.Meta.Params "product") -}} {{- $productName = (index .Analysis.Meta.Params "product") -}} {{- $oldVersion = (index .Analysis.Meta.Params "old_version") -}} {{- $newVersion = (index .Analysis.Meta.Params "new_version") -}} {{- else if (index .Analysis.Meta.Params "repo_name") -}} {{- $productName = (index .Analysis.Meta.Params "repo_name") -}} {{- $oldVersion = (index .Analysis.Meta.Params "old_version") -}} {{- $newVersion = (index .Analysis.Meta.Params "new_version") -}} {{- else if (index .Analysis.Meta.Params "old_folder") -}} {{- $productName = "Folder Analysis" -}} {{- $oldVersion = (index .Analysis.Meta.Params "old_folder") -}} {{- $newVersion = (index .Analysis.Meta.Params "new_folder") -}} {{- end -}} {{- if $productName -}} {{- if $cveIDs -}} PatchLeaks - Analysis Report {{$productName}} {{$oldVersion}} → {{$newVersion}} - {{$cveIDs}} {{- else -}} PatchLeaks - Analysis Report {{$productName}} {{$oldVersion}} → {{$newVersion}} {{- end -}} {{- else if $cveIDs -}} PatchLeaks - Analysis Report for {{$cveIDs}} {{- else -}} PatchLeaks - Analysis Report {{- end -}}
{{if eq .Status "running"}} {{end}}
{{- $cveIDs := "" -}} {{- $seenCVEs := "" -}} {{- range .IndexedResults -}} {{- if .Result.CVEMatches -}} {{- range $cve_id, $cve_data := .Result.CVEMatches -}} {{- if eq $cve_data.Result "Yes" -}} {{- if not (contains $seenCVEs $cve_id) -}} {{- if $cveIDs -}} {{- $cveIDs = printf "%s, %s" $cveIDs $cve_id -}} {{- else -}} {{- $cveIDs = $cve_id -}} {{- end -}} {{- if $seenCVEs -}} {{- $seenCVEs = printf "%s,%s" $seenCVEs $cve_id -}} {{- else -}} {{- $seenCVEs = $cve_id -}} {{- end -}} {{- end -}} {{- end -}} {{- end -}} {{- end -}} {{- end -}} {{- if not $cveIDs -}} {{- if (index .Analysis.Meta.Params "cve_ids") -}} {{- $cveIDs = (index .Analysis.Meta.Params "cve_ids") -}} {{- end -}} {{- end -}} {{- $productName := "" -}} {{- $oldVersion := "" -}} {{- $newVersion := "" -}} {{- if (index .Analysis.Meta.Params "product") -}} {{- $productName = (index .Analysis.Meta.Params "product") -}} {{- $oldVersion = (index .Analysis.Meta.Params "old_version") -}} {{- $newVersion = (index .Analysis.Meta.Params "new_version") -}} {{- else if (index .Analysis.Meta.Params "repo_name") -}} {{- $productName = (index .Analysis.Meta.Params "repo_name") -}} {{- $oldVersion = (index .Analysis.Meta.Params "old_version") -}} {{- $newVersion = (index .Analysis.Meta.Params "new_version") -}} {{- else if (index .Analysis.Meta.Params "old_folder") -}} {{- $productName = "Folder Analysis" -}} {{- $oldVersion = (index .Analysis.Meta.Params "old_folder") -}} {{- $newVersion = (index .Analysis.Meta.Params "new_folder") -}} {{- end -}} {{- if $productName -}} {{- if $cveIDs -}}

Analysis Report {{$productName}} {{$oldVersion}} → {{$newVersion}} - {{$cveIDs}}

{{- else -}}

Analysis Report {{$productName}} {{$oldVersion}} → {{$newVersion}}

{{- end -}} {{- else if $cveIDs -}}

Analysis Report for {{$cveIDs}}

{{- else -}}

Analysis Report

{{- end -}}

Shared security patch analysis results

{{if .Analysis.Meta.AIEnabled}} AI Used: {{.Analysis.Meta.AIService}}{{if .Analysis.Meta.AIModel}} {{.Analysis.Meta.AIModel}}{{end}} {{end}}
Share this analysis
{{if .Analysis.CVEWriteups}}
CVE Security Analysis & Writeups

Comprehensive security analysis generated by AI for each confirmed CVE match. Click on a CVE to view the detailed writeup including vulnerability background, technical details, patch analysis, and PoC guide.

{{range $cveID, $writeup := .Analysis.CVEWriteups}}
{{$cveID}}
AI-Generated Analysis
{{end}}
{{end}} {{if .Analysis.Results}}
Showing 0 to 0 of 0 results
{{range .IndexedResults}} {{- $hasCVE := false -}} {{- if .Result.CVEMatches -}} {{- range $cve_id, $cve_data := .Result.CVEMatches -}} {{- if eq $cve_data.Result "Yes" -}} {{- $hasCVE = true -}} {{- end -}} {{- end -}} {{- end -}}
{{.Filename}} {{if .Result.VulnerabilityStatus}} {{.Result.VulnerabilityStatus}} {{end}} {{if .Result.CVEMatches}} {{range $cve_id, $cve_data := .Result.CVEMatches}} {{if eq $cve_data.Result "Yes"}} {{$cve_id}} {{end}} {{end}} {{end}}
{{range .Result.Context}}{{if eq . "..."}}...{{else if hasPrefix . "+"}}{{.}}{{else if hasPrefix . "-"}}{{.}}{{else}}{{.}}{{end}}{{end}}
{{if .Result.AIResponse}}
AI Analysis
{{.Result.AIResponse}}
{{if .Result.CVEMatches}}
CVE Analysis Results:
{{range $cve_id, $cve_data := .Result.CVEMatches}}
{{$cve_id}}: {{$cve_data.Result}}
View CVE Description
{{$cve_data.Description}}
{{end}}
{{end}}
{{end}}
{{end}}
{{if .Pagination}}
Showing {{.Pagination.StartItem}} to {{.Pagination.EndItem}} of {{.Pagination.TotalItems}} results
{{end}} {{end}}