Skip to content

Commit 3df76d7

Browse files
Merge pull request #5 from mpidash/sarif-check-suppression-states
Skip results where SuppressionStates is not None
2 parents 916c1e2 + 5c37aeb commit 3df76d7

File tree

2 files changed

+29
-28
lines changed

2 files changed

+29
-28
lines changed

CodeQualityToGitlab/SarifConverter.cs

Lines changed: 28 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -19,36 +19,40 @@ public static List<CodeQuality> ConvertToCodeQualityRaw(FileInfo source, string?
1919

2020
var log = JsonConvert.DeserializeObject<SarifLogVersionOne>(logContents, settings);
2121

22-
var cqrs = new List<CodeQuality>();
23-
foreach (var result in log.Runs.SelectMany(x => x.Results))
22+
var results = log.Runs
23+
.SelectMany(x => x.Results)
24+
.Where(r => r.SuppressionStates == SuppressionStatesVersionOne.None);
25+
26+
var cqrs = new List<CodeQuality>();
27+
foreach (var result in results)
2428
{
2529
var begin = result.Locations?.FirstOrDefault();
2630

27-
if (begin == null)
28-
{
29-
Log.Warning("An issue has no location, skipping: {Result}", result.Message);
30-
continue;
31-
}
31+
if (begin == null)
32+
{
33+
Log.Warning("An issue has no location, skipping: {Result}", result.Message);
34+
continue;
35+
}
3236

33-
try
37+
try
38+
{
39+
var cqr = new CodeQuality
3440
{
35-
var cqr = new CodeQuality
41+
Description = $"{result.RuleId}: {result.Message}",
42+
Severity = GetSeverity(result.Level),
43+
Location = new LocationCq
3644
{
37-
Description = $"{result.RuleId}: {result.Message}",
38-
Severity = GetSeverity(result.Level),
39-
Location = new LocationCq
40-
{
41-
Path = GetPath(pathRoot, begin),
42-
Lines = new Lines { Begin = begin.ResultFile.Region.StartLine }
43-
},
44-
Fingerprint = Common.GetHash($"{result.RuleId}|{begin.ResultFile.Uri}|{begin.ResultFile.Region.StartLine}")
45-
};
46-
cqrs.Add(cqr);
47-
}
48-
catch (Exception e)
49-
{
50-
Log.Error(e, "Could not convert {@Result}, skipping", result);
51-
}
45+
Path = GetPath(pathRoot, begin),
46+
Lines = new Lines { Begin = begin.ResultFile.Region.StartLine }
47+
},
48+
Fingerprint = Common.GetHash($"{result.RuleId}|{begin.ResultFile.Uri}|{begin.ResultFile.Region.StartLine}")
49+
};
50+
cqrs.Add(cqr);
51+
}
52+
catch (Exception e)
53+
{
54+
Log.Error(e, "Could not convert {@Result}, skipping", result);
55+
}
5256
}
5357

5458
return cqrs;

Test/TestSarif.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,7 @@ public void TestSarifWorks3()
8686
var json = r.ReadToEnd();
8787
var result = JsonSerializer.Deserialize<List<CodeQuality>>(json, options);
8888

89-
result.Should().HaveCount(1);
90-
var codeQuality = result!.First();
91-
codeQuality.Location.Path.Should().Be("Microsoft.NET.Sdk.Razor.SourceGenerators/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Views_Apaleo_TgcBooking_cshtml.g.cs");
92-
codeQuality.Location.Lines.Begin.Should().Be(217);
89+
result.Should().HaveCount(0);
9390

9491
}
9592

0 commit comments

Comments
 (0)