Skip to content

Commit

Permalink
Merge pull request #11 from DataDog/bahar.shah/BFO-330
Browse files Browse the repository at this point in the history
[BFO-330] Remove taxonomy, move category, fix 0-based indexing
  • Loading branch information
bahar-shah authored Aug 14, 2024
2 parents d0de812 + a1a8cfb commit abb34bd
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 22 deletions.
49 changes: 28 additions & 21 deletions pkg/report/model/sarif.go
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ type sarifTaxonomy struct {
type SarifRun struct {
Tool sarifTool `json:"tool"`
Results []sarifResult `json:"results"`
Taxonomies []sarifTaxonomy `json:"taxonomies"`
Taxonomies []sarifTaxonomy `json:"taxonomies,omitempty"`
}

// SarifReport represents a usable sarif report reference
Expand All @@ -243,6 +243,7 @@ const (
diffAwareFileTag = "DATADOG_DIFF_AWARE_FILE:%s"
executionTimeTag = "DATADOG_EXECUTION_TIME_SECS:%v"
ruleTypeProperty = "DATADOG_RULE_TYPE:IAC_SCANNING"
categoryTag = "DATADOG_CATEGORY:%s"
)

func initSarifTool() sarifTool {
Expand Down Expand Up @@ -360,9 +361,9 @@ func initSarifTaxonomies() []sarifTaxonomy {
func initSarifRun() []SarifRun {
return []SarifRun{
{
Tool: initSarifTool(),
Results: make([]sarifResult, 0),
Taxonomies: initSarifTaxonomies(),
Tool: initSarifTool(),
Results: make([]sarifResult, 0),
// Taxonomies: initSarifTaxonomies(),
},
}
}
Expand Down Expand Up @@ -538,32 +539,34 @@ func (sr *sarifReport) buildSarifRule(queryMetadata *ruleMetadata, cisMetadata r
helpURI = queryMetadata.queryURI
}

target := sr.buildSarifCategory(queryMetadata.queryCategory)
cwe := sr.buildCweCategory(queryMetadata.queryCwe)
// target := sr.buildSarifCategory(queryMetadata.queryCategory)
// cwe := sr.buildCweCategory(queryMetadata.queryCwe)

var relationships []sarifRelationship
categoryTag := GetCategoryTag(queryMetadata.queryCategory)

if cwe.ReferenceID != "" {
relationships = []sarifRelationship{
{Relationship: target},
{Relationship: cwe},
}
} else {
relationships = []sarifRelationship{
{Relationship: target},
}
}
// var relationships []sarifRelationship

// if cwe.ReferenceID != "" {
// relationships = []sarifRelationship{
// {Relationship: target},
// {Relationship: cwe},
// }
// } else {
// relationships = []sarifRelationship{
// {Relationship: target},
// }
// }

rule := sarifRule{
RuleID: queryMetadata.queryID,
RuleName: queryMetadata.queryName,
RuleShortDescription: sarifMessage{Text: queryMetadata.queryName},
RuleFullDescription: sarifMessage{Text: queryMetadata.queryDescription},
DefaultConfiguration: sarifConfiguration{Level: severityLevelEquivalence[queryMetadata.severity]},
Relationships: relationships,
HelpURI: helpURI,
// Relationships: relationships,
HelpURI: helpURI,
RuleProperties: sarifProperties{
"tags": []string{ruleTypeProperty},
"tags": []string{ruleTypeProperty, categoryTag},
},
}
if cisMetadata.id != "" {
Expand Down Expand Up @@ -643,6 +646,10 @@ func (sr *sarifReport) BuildSarifIssue(issue *model.QueryResult) string {
Line: resourceLocation.ResourceStart.Line,
Col: resourceLocation.ResourceStart.Col,
}

if startLocation.Col < 1 {
startLocation.Col = 1
}
// endLocation := sarifResourceLocation{
// Line: resourceLocation.ResourceEnd.Line,
// Col: resourceLocation.ResourceEnd.Col,
Expand All @@ -667,7 +674,7 @@ func (sr *sarifReport) BuildSarifIssue(issue *model.QueryResult) string {
StartLine: line,
EndLine: line + 1,
StartColumn: startLocation.Col,
EndColumn: 0,
EndColumn: 1,
// StartResource: startLocation,
// EndResource: endLocation,
},
Expand Down
4 changes: 4 additions & 0 deletions pkg/report/model/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,7 @@ func GetDiffAwareBaseShaTag(diffAware model.DiffAware) string {
func GetDiffAwareFilesTag(diffAware model.DiffAware) string {
return fmt.Sprintf(diffAwareFileTag, diffAware.Files)
}

func GetCategoryTag(category string) string {
return fmt.Sprintf(categoryTag, category)
}
2 changes: 1 addition & 1 deletion pkg/report/sarif.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ func PrintSarifReport(path, filename string, body interface{}, sciInfo model.SCI
}
}
sarifReport.AddTags(&summary, &sciInfo.DiffAware)
sarifReport.RebuildTaxonomies(auxID, auxGUID)
// sarifReport.RebuildTaxonomies(auxID, auxGUID)
body = sarifReport
}

Expand Down

0 comments on commit abb34bd

Please sign in to comment.