Skip to content

Commit 9923090

Browse files
committed
Generalized Print Functions for code deduplication
1 parent 39d9674 commit 9923090

File tree

1 file changed

+18
-30
lines changed

1 file changed

+18
-30
lines changed

cmd/devguard-scanner/scanner/print.go

Lines changed: 18 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ import (
2929
"github.com/package-url/packageurl-go"
3030
)
3131

32+
// Set to gitlab output size limit
33+
var rowLengthLimit = 80
34+
3235
func PrintFirstPartyScanResults(scanResponse dtos.FirstPartyScanResponse, assetName string, webUI string, assetVersionName string, scannerID string) error {
3336

3437
if len(scanResponse.FirstPartyVulns) == 0 {
@@ -40,32 +43,34 @@ func PrintFirstPartyScanResults(scanResponse dtos.FirstPartyScanResponse, assetN
4043
return v.State == dtos.VulnStateOpen
4144
})
4245

46+
tw := table.NewWriter()
47+
tw.SetAllowedRowLength(rowLengthLimit)
48+
4349
switch scannerID {
4450
case "secret-scanning":
45-
PrintSecretScanResults(openVulns, webUI, assetName, assetVersionName)
51+
PrintSecretScanResults(openVulns, webUI, assetName, assetVersionName, tw)
4652
default:
47-
PrintSastScanResults(openVulns, webUI, assetName, assetVersionName)
53+
PrintSastScanResults(openVulns, webUI, assetName, assetVersionName, tw)
4854
}
4955

56+
link := text.FgBlue.Sprint(fmt.Sprintf("%s/%s/refs/%s/code-risks/", webUI, assetName, slug.Make(assetVersionName)))
57+
wrappedLink := text.WrapText(link, rowLengthLimit)
58+
tw.AppendRow(table.Row{"Link", wrappedLink})
59+
60+
fmt.Println(tw.Render())
61+
5062
if len(openVulns) > 0 {
5163
return fmt.Errorf("found %d unhandled vulnerabilities", len(openVulns))
5264
}
5365

5466
return nil
5567
}
5668

57-
func PrintSecretScanResults(firstPartyVulns []dtos.FirstPartyVulnDTO, webUI string, assetName string, assetVersionName string) {
58-
tw := table.NewWriter()
59-
//Set to gitlab output size limit
60-
rowLengthLimit := 80
61-
tw.SetAllowedRowLength(rowLengthLimit)
62-
63-
blue := text.FgBlue
64-
green := text.FgGreen
69+
func PrintSecretScanResults(firstPartyVulns []dtos.FirstPartyVulnDTO, webUI string, assetName string, assetVersionName string, tw table.Writer) {
6570
for _, vuln := range firstPartyVulns {
6671
raw := []table.Row{
6772
{"RuleID:", vuln.RuleID},
68-
{"File:", green.Sprint(vuln.URI)},
73+
{"File:", text.FgGreen.Sprint(vuln.URI)},
6974
}
7075
tw.AppendRows(raw)
7176
for _, snippet := range vuln.SnippetContents {
@@ -81,40 +86,23 @@ func PrintSecretScanResults(firstPartyVulns []dtos.FirstPartyVulnDTO, webUI stri
8186
tw.AppendRows(raw)
8287
tw.AppendSeparator()
8388
}
84-
85-
link := blue.Sprint(fmt.Sprintf("%s/%s/refs/%s/code-risks/", webUI, assetName, slug.Make(assetVersionName)))
86-
wrappedLink := text.WrapText(link, rowLengthLimit)
87-
tw.AppendRow(table.Row{"Link", wrappedLink})
88-
89-
fmt.Println(tw.Render())
9089
}
9190

92-
func PrintSastScanResults(firstPartyVulns []dtos.FirstPartyVulnDTO, webUI, assetName string, assetVersionName string) {
93-
tw := table.NewWriter()
94-
//Set to gitlab output size limit
95-
rowLengthLimit := 80
96-
tw.SetAllowedRowLength(rowLengthLimit)
91+
func PrintSastScanResults(firstPartyVulns []dtos.FirstPartyVulnDTO, webUI, assetName string, assetVersionName string, tw table.Writer) {
9792

98-
blue := text.FgBlue
99-
green := text.FgGreen
10093
for _, vuln := range firstPartyVulns {
10194
tw.AppendRow(table.Row{"RuleID", vuln.RuleID})
10295
for _, snippet := range vuln.SnippetContents {
10396
tw.AppendRow(table.Row{"Snippet", snippet.Snippet})
10497
}
10598
tw.AppendRow(table.Row{"Message", text.WrapText(*vuln.Message, rowLengthLimit)})
10699
if vuln.URI != "" {
107-
tw.AppendRow(table.Row{"File", green.Sprint(vuln.URI)})
100+
tw.AppendRow(table.Row{"File", text.FgGreen.Sprint(vuln.URI)})
108101

109102
}
110103
tw.AppendSeparator()
111104
}
112105

113-
link := blue.Sprint(fmt.Sprintf("%s/%s/refs/%s/code-risks/", webUI, assetName, slug.Make(assetVersionName)))
114-
wrappedLink := text.WrapText(link, rowLengthLimit)
115-
tw.AppendRow(table.Row{"Link", wrappedLink})
116-
117-
fmt.Println(tw.Render())
118106
}
119107

120108
// can be reused for container scanning as well.

0 commit comments

Comments
 (0)