@@ -39,14 +39,43 @@ func (f *Format) Format(ctx context.Context, packages []*models.PackageInsights)
3939		return  parts [0 ]
4040	}
4141
42+ 	levelToConfidence  :=  func (level  string ) string  {
43+ 		switch  level  {
44+ 		case  "error" :
45+ 			return  "high" 
46+ 		case  "warning" :
47+ 			return  "medium" 
48+ 		case  "note" :
49+ 			return  "low" 
50+ 		case  "none" :
51+ 			return  "not_set" 
52+ 		default :
53+ 			return  "not_set" 
54+ 		}
55+ 	}
56+ 
4257	docs  :=  docs .GetPagesContent ()
4358
4459	for  _ , pkg  :=  range  packages  {
4560		run  :=  sarif .NewRunWithInformationURI ("poutine" , "https://github.com/boostsecurityio/poutine" )
4661		run .Tool .Driver .WithSemanticVersion (f .version )
62+ 		run .Tool .Driver .WithOrganization ("boostsecurity" )
4763		run .Properties  =  map [string ]interface {}{
4864			"purl" : pkg .Purl ,
4965		}
66+ 		version  :=  "1.0.0" 
67+ 		organization  :=  "boostsecurity" 
68+ 
69+ 		taxonomy  :=  & sarif.ToolComponent {
70+ 			Name :         "boost/sast" ,
71+ 			Version :      & version ,
72+ 			Organization : & organization ,
73+ 		}
74+ 
75+ 		taxonomyRef  :=  sarif .NewToolComponentReference ().WithName ("boost/sast" )
76+ 		run .Tool .Driver .WithSupportedTaxonomies ([]* sarif.ToolComponentReference {taxonomyRef })
77+ 
78+ 		run .WithTaxonomies ([]* sarif.ToolComponent {taxonomy })
5079
5180		sourceGitRepoURI  :=  pkg .GetSourceGitRepoURI ()
5281
@@ -98,23 +127,33 @@ func (f *Format) Format(ctx context.Context, packages []*models.PackageInsights)
98127
99128			run .AddDistinctArtifact (path )
100129
101- 			run .CreateResultForRule (ruleId ).
130+ 			fingerprint  :=  finding .GenerateFindingFingerprint ()
131+ 			confidence  :=  levelToConfidence (rule .Level )
132+ 
133+ 			result  :=  run .CreateResultForRule (ruleId ).
102134				WithLevel (rule .Level ).
103135				WithMessage (sarif .NewTextMessage (ruleDescription )).
104136				WithPartialFingerPrints (map [string ]interface {}{
105- 					"primaryLocationLineHash" : finding .GenerateFindingFingerprint (),
106- 				}).
107- 				AddLocation (
108- 					sarif .NewLocationWithPhysicalLocation (
109- 						sarif .NewPhysicalLocation ().
110- 							WithArtifactLocation (
111- 								sarif .NewSimpleArtifactLocation (path ),
112- 							).
113- 							WithRegion (
114- 								sarif .NewSimpleRegion (line , line ),
115- 							),
116- 					),
117- 				)
137+ 					"primaryLocationLineHash" : fingerprint ,
138+ 				})
139+ 
140+ 			result .AddLocation (
141+ 				sarif .NewLocationWithPhysicalLocation (
142+ 					sarif .NewPhysicalLocation ().
143+ 						WithArtifactLocation (
144+ 							sarif .NewSimpleArtifactLocation (path ),
145+ 						).
146+ 						WithRegion (
147+ 							sarif .NewSimpleRegion (line , line ),
148+ 						),
149+ 				),
150+ 			)
151+ 
152+ 			result .AttachPropertyBag (& sarif.PropertyBag {
153+ 				Properties : map [string ]interface {}{
154+ 					"boost/confidence" : confidence ,
155+ 				},
156+ 			})
118157		}
119158		sarifReport .AddRun (run )
120159	}
0 commit comments