@@ -8,43 +8,49 @@ import (
88)
99
1010func writeYaml (report * Report ) (string , error ) {
11+ estimatedSize := 1024 + len (report .Results )* 512
1112 var builder strings.Builder
13+ builder .Grow (estimatedSize )
1214
13- builder .WriteString (fmt .Sprintf ("totalitemsscanned: %d\n " , report .TotalItemsScanned ))
14- builder .WriteString (fmt .Sprintf ("totalsecretsfound: %d\n " , report .TotalSecretsFound ))
15- builder .WriteString ("results:\n " )
15+ fmt .Fprintf (& builder , "totalitemsscanned: %d\n " , report .TotalItemsScanned )
16+ fmt .Fprintf (& builder , "totalsecretsfound: %d\n " , report .TotalSecretsFound )
17+ if report .TotalSecretsFound == 0 {
18+ fmt .Fprint (& builder , "results: {}\n " )
19+ } else {
1620
17- for _ , secretsList := range report .Results {
18- if len (secretsList ) > 0 {
19- builder .WriteString (fmt .Sprintf (" %s:\n " , secretsList [0 ].ID ))
20- }
21- for _ , s := range secretsList {
22- builder .WriteString (" - id: " + s .ID + "\n " )
23- builder .WriteString (" source: " + s .Source + "\n " )
24- builder .WriteString (" ruleid: " + s .RuleID + "\n " )
25- builder .WriteString (fmt .Sprintf (" startline: %d\n " , s .StartLine ))
26- builder .WriteString (fmt .Sprintf (" endline: %d\n " , s .EndLine ))
27- builder .WriteString (fmt .Sprintf (" linecontent: %q\n " , s .LineContent ))
28- builder .WriteString (fmt .Sprintf (" startcolumn: %d\n " , s .StartColumn ))
29- builder .WriteString (fmt .Sprintf (" endcolumn: %d\n " , s .EndColumn ))
30- builder .WriteString (" value: " + s .Value + "\n " )
31- builder .WriteString (fmt .Sprintf (" validationstatus: %q\n " , fmt .Sprintf ("%v" , s .ValidationStatus )))
32- builder .WriteString (" ruledescription: " + s .RuleDescription + "\n " )
33- if len (s .ExtraDetails ) > 0 {
34- builder .WriteString (" extradetails:\n " )
35- marshaled , err := yaml .Marshal (s .ExtraDetails )
36- if err != nil {
37- builder .WriteString (fmt .Sprintf (" error: %v\n " , err ))
38- } else {
39- lines := strings .Split (string (marshaled ), "\n " )
40- for _ , line := range lines {
41- if line != "" {
42- builder .WriteString (" " + line + "\n " )
21+ builder .WriteString ("results:\n " )
22+ for _ , secretsList := range report .Results {
23+ if len (secretsList ) > 0 {
24+ fmt .Fprintf (& builder , " %s:\n " , secretsList [0 ].ID )
25+ }
26+ for _ , s := range secretsList {
27+ fmt .Fprintf (& builder , " - id: %s\n " , s .ID )
28+ fmt .Fprintf (& builder , " source: %s\n " , s .Source )
29+ fmt .Fprintf (& builder , " ruleid: %s\n " , s .RuleID )
30+ fmt .Fprintf (& builder , " startline: %d\n " , s .StartLine )
31+ fmt .Fprintf (& builder , " endline: %d\n " , s .EndLine )
32+ fmt .Fprintf (& builder , " linecontent: %q\n " , s .LineContent )
33+ fmt .Fprintf (& builder , " startcolumn: %d\n " , s .StartColumn )
34+ fmt .Fprintf (& builder , " endcolumn: %d\n " , s .EndColumn )
35+ fmt .Fprintf (& builder , " value: %s\n " , s .Value )
36+ fmt .Fprintf (& builder , " validationstatus: %q\n " , fmt .Sprintf ("%v" , s .ValidationStatus ))
37+ fmt .Fprintf (& builder , " ruledescription: %s\n " , s .RuleDescription )
38+ if len (s .ExtraDetails ) > 0 {
39+ builder .WriteString (" extradetails:\n " )
40+ marshaled , err := yaml .Marshal (s .ExtraDetails )
41+ if err != nil {
42+ fmt .Fprintf (& builder , " error: %v\n " , err )
43+ } else {
44+ lines := strings .Split (string (marshaled ), "\n " )
45+ for _ , line := range lines {
46+ if line != "" {
47+ fmt .Fprintf (& builder , " %s\n " , line )
48+ }
4349 }
4450 }
4551 }
52+ fmt .Fprintf (& builder , " cvssscore: %.1f\n " , s .CvssScore )
4653 }
47- builder .WriteString (fmt .Sprintf (" cvssscore: %.1f\n " , s .CvssScore ))
4854 }
4955 }
5056
0 commit comments