From 1fc555703648511be0a83f2777e043421abf9a97 Mon Sep 17 00:00:00 2001 From: Larry Golding Date: Wed, 6 Feb 2019 09:12:16 -0800 Subject: [PATCH] Revert unintentional change to BaselineState (#1262) The `develop` branch should match TC #30, but we inadvertently introduced a change from TC #31: replacing `BaselineState.Existing` with `.Unchanged` and `Updated`. I did not revert the entire change. Some things (like having AppVeyor build the `tc-31` branch instead of the defunct `files-array` branch, and some C# 7 updates to the `PrereleaseCompatibilityTransformer`) were good, and I kept them. Also: - Update the version to `2019-01-09` in preparation for merge to `master`. --- src/ReleaseHistory.md | 2 +- .../ExpectedOutputs/OneResultBasic.sarif | 2 +- .../OneResultWithTwoTraces.sarif | 2 +- .../TwoResultsWithNodeRefs.sarif | 2 +- src/Sarif.Converters/FxCopConverter.cs | 2 +- .../TestData/DeserializationError.sarif | 2 +- .../Baseline/DefaultBaselineUnitTests.cs | 4 +- .../IdenticalResultMatcherTests.cs | 6 +-- .../ResultMatchingBaselinerTests.cs | 4 +- .../SarifLogResultMatcherTests.cs | 4 +- .../Baseline/StrictBaselineUnitTests.cs | 6 +-- .../IsSuppressedInSourceConverterTests.cs | 21 ++------ src/Sarif/Autogenerated/BaselineState.cs | 3 +- .../DataStructures/MatchedResults.cs | 2 +- .../ResultMatching/SarifLogMatcher.cs | 3 +- src/Sarif/Baseline/SarifLogBaseliner.cs | 2 +- src/Sarif/CodeGenHints.json | 3 +- src/Sarif/Schemata/sarif-schema.json | 3 +- .../Visitors/SarifTransformerUtilities.cs | 5 +- .../PrereleaseCompatibilityTransformer.cs | 48 ++++--------------- 20 files changed, 39 insertions(+), 87 deletions(-) diff --git a/src/ReleaseHistory.md b/src/ReleaseHistory.md index 4a892d995..421d733c0 100644 --- a/src/ReleaseHistory.md +++ b/src/ReleaseHistory.md @@ -219,7 +219,7 @@ * API BREAKING: Remove 'threadFlowLocation.step' * API BREAKING: 'invocation.workingDirectory' is now a FileLocation object (and not a URI expressed as a string) -## **v2.0.0-csd.2.beta.2018.11.28** [Sdk](https://www.nuget.org/packages/Sarif.Sdk/2.0.0-csd.2.beta.2018.11.28) | [Driver](https://www.nuget.org/packages/Sarif.Driver/2.0.0-csd.2.beta.2018.11.28) | [Converters](https://www.nuget.org/packages/Sarif.Converters/2.0.0-csd.2.beta.2018.11.28)) | [Multitool](https://www.nuget.org/packages/Sarif.Multitool/2.0.0-csd.2.beta.2018.11.28)) +## **v2.0.0-csd.2.beta.2019.01.09** [Sdk](https://www.nuget.org/packages/Sarif.Sdk/2.0.0-csd.2.beta.2019.01.09) | [Driver](https://www.nuget.org/packages/Sarif.Driver/2.0.0-csd.2.beta.2019.01.09) | [Converters](https://www.nuget.org/packages/Sarif.Converters/2.0.0-csd.2.beta.2019.01.09)) | [Multitool](https://www.nuget.org/packages/Sarif.Multitool/2.0.0-csd.2.beta.2019.01.09)) * BUGFIX: Result matching improvements in properties persistence. * FEATURE: Fortify FPR converter improvements. * API Non-BREAKING: Remove uniqueness requirement from 'result.locations'. diff --git a/src/Sarif.Converters.UnitTests/TestData/FortifyFprConverter/ExpectedOutputs/OneResultBasic.sarif b/src/Sarif.Converters.UnitTests/TestData/FortifyFprConverter/ExpectedOutputs/OneResultBasic.sarif index 3db64d78d..4feebb5ab 100644 --- a/src/Sarif.Converters.UnitTests/TestData/FortifyFprConverter/ExpectedOutputs/OneResultBasic.sarif +++ b/src/Sarif.Converters.UnitTests/TestData/FortifyFprConverter/ExpectedOutputs/OneResultBasic.sarif @@ -1,5 +1,5 @@ { - "$schema": "http://json.schemastore.org/sarif-2.0.0-csd.2.beta.2018-11-28", + "$schema": "http://json.schemastore.org/sarif-2.0.0-csd.2.beta.2019-01-09", "version": "2.0.0-csd.2.beta.2019-01-09", "runs": [ { diff --git a/src/Sarif.Converters.UnitTests/TestData/FortifyFprConverter/ExpectedOutputs/OneResultWithTwoTraces.sarif b/src/Sarif.Converters.UnitTests/TestData/FortifyFprConverter/ExpectedOutputs/OneResultWithTwoTraces.sarif index f03a14e2c..a1fa9e3b7 100644 --- a/src/Sarif.Converters.UnitTests/TestData/FortifyFprConverter/ExpectedOutputs/OneResultWithTwoTraces.sarif +++ b/src/Sarif.Converters.UnitTests/TestData/FortifyFprConverter/ExpectedOutputs/OneResultWithTwoTraces.sarif @@ -1,5 +1,5 @@ { - "$schema": "http://json.schemastore.org/sarif-2.0.0-csd.2.beta.2018-11-28", + "$schema": "http://json.schemastore.org/sarif-2.0.0-csd.2.beta.2019-01-09", "version": "2.0.0-csd.2.beta.2019-01-09", "runs": [ { diff --git a/src/Sarif.Converters.UnitTests/TestData/FortifyFprConverter/ExpectedOutputs/TwoResultsWithNodeRefs.sarif b/src/Sarif.Converters.UnitTests/TestData/FortifyFprConverter/ExpectedOutputs/TwoResultsWithNodeRefs.sarif index 33805c628..2d3b3a068 100644 --- a/src/Sarif.Converters.UnitTests/TestData/FortifyFprConverter/ExpectedOutputs/TwoResultsWithNodeRefs.sarif +++ b/src/Sarif.Converters.UnitTests/TestData/FortifyFprConverter/ExpectedOutputs/TwoResultsWithNodeRefs.sarif @@ -1,5 +1,5 @@ { - "$schema": "http://json.schemastore.org/sarif-2.0.0-csd.2.beta.2018-11-28", + "$schema": "http://json.schemastore.org/sarif-2.0.0-csd.2.beta.2019-01-09", "version": "2.0.0-csd.2.beta.2019-01-09", "runs": [ { diff --git a/src/Sarif.Converters/FxCopConverter.cs b/src/Sarif.Converters/FxCopConverter.cs index 202fcd5e4..8e320265d 100644 --- a/src/Sarif.Converters/FxCopConverter.cs +++ b/src/Sarif.Converters/FxCopConverter.cs @@ -106,7 +106,7 @@ internal Result CreateResult(FxCopLogReader.Context context) } else if ("ExcludedInProject".Equals(status)) { - result.BaselineState = BaselineState.Unchanged; + result.BaselineState = BaselineState.Existing; } result.RuleId = context.CheckId; diff --git a/src/Sarif.Multitool.FunctionalTests/TestData/DeserializationError.sarif b/src/Sarif.Multitool.FunctionalTests/TestData/DeserializationError.sarif index 3b1a1a3a7..f508e6718 100644 --- a/src/Sarif.Multitool.FunctionalTests/TestData/DeserializationError.sarif +++ b/src/Sarif.Multitool.FunctionalTests/TestData/DeserializationError.sarif @@ -1,5 +1,5 @@ { - "$schema": "http://json.schemastore.org/sarif-2.0.0-csd.2.beta.2018-11-28", + "$schema": "http://json.schemastore.org/sarif-2.0.0-csd.2.beta.2019-01-09", "version": "2.0.0-csd.2.beta.2019-01-09", "runs": [ { diff --git a/src/Sarif.UnitTests/Baseline/DefaultBaselineUnitTests.cs b/src/Sarif.UnitTests/Baseline/DefaultBaselineUnitTests.cs index 99ce439e3..2abb3d0d6 100644 --- a/src/Sarif.UnitTests/Baseline/DefaultBaselineUnitTests.cs +++ b/src/Sarif.UnitTests/Baseline/DefaultBaselineUnitTests.cs @@ -30,7 +30,7 @@ public void DefaultBaseline_SameResults_AllExisting() Run result = defaultBaseliner.CreateBaselinedRun(baseline, next); - result.Results.Should().OnlyContain(r => r.BaselineState == BaselineState.Unchanged); + result.Results.Should().OnlyContain(r => r.BaselineState == BaselineState.Existing); result.Results.Should().HaveCount(baseline.Results.Count()); } @@ -89,7 +89,7 @@ public void DefaultBaseline_ChangedResultOnNonTrackedField_Existing() Run result = defaultBaseliner.CreateBaselinedRun(baseline, next); - result.Results.Should().OnlyContain(r => r.BaselineState == BaselineState.Unchanged); + result.Results.Should().OnlyContain(r => r.BaselineState == BaselineState.Existing); result.Results.Should().HaveCount(baseline.Results.Count()); } } diff --git a/src/Sarif.UnitTests/Baseline/ResultMatching/ExactMatchers/IdenticalResultMatcherTests.cs b/src/Sarif.UnitTests/Baseline/ResultMatching/ExactMatchers/IdenticalResultMatcherTests.cs index cfbfa7a79..9ba2eeef0 100644 --- a/src/Sarif.UnitTests/Baseline/ResultMatching/ExactMatchers/IdenticalResultMatcherTests.cs +++ b/src/Sarif.UnitTests/Baseline/ResultMatching/ExactMatchers/IdenticalResultMatcherTests.cs @@ -122,7 +122,7 @@ public void IdenticalResultMatcher_MatchesResults_DifferingOnIdOrStatus_Single() Result changedResultA = resultA.Result.DeepClone(); changedResultA.CorrelationGuid = Guid.NewGuid().ToString(); - changedResultA.BaselineState = BaselineState.Unchanged; + changedResultA.BaselineState = BaselineState.Existing; ExtractedResult resultB = new ExtractedResult() { @@ -146,7 +146,7 @@ public void IdenticalResultMatcher_MatchesResults_DifferingOnIdOrStatus_Multiple Result changedResultA = resultAA.Result.DeepClone(); changedResultA.CorrelationGuid = Guid.NewGuid().ToString(); - changedResultA.BaselineState = BaselineState.Unchanged; + changedResultA.BaselineState = BaselineState.Existing; ExtractedResult resultBA = new ExtractedResult() { @@ -185,7 +185,7 @@ public void IdenticalResultMatcher_MatchesResults_DifferingOnResultMatchingPrope Result changedResultA = resultAA.Result.DeepClone(); changedResultA.CorrelationGuid = Guid.NewGuid().ToString(); - changedResultA.BaselineState = BaselineState.Unchanged; + changedResultA.BaselineState = BaselineState.Existing; changedResultA.SetProperty(SarifLogResultMatcher.ResultMatchingResultPropertyName, new Dictionary { { "property", "value" } }); ExtractedResult resultBA = new ExtractedResult() diff --git a/src/Sarif.UnitTests/Baseline/ResultMatching/ResultMatchingBaselinerTests.cs b/src/Sarif.UnitTests/Baseline/ResultMatching/ResultMatchingBaselinerTests.cs index 81c150a03..657c76be0 100644 --- a/src/Sarif.UnitTests/Baseline/ResultMatching/ResultMatchingBaselinerTests.cs +++ b/src/Sarif.UnitTests/Baseline/ResultMatching/ResultMatchingBaselinerTests.cs @@ -62,13 +62,13 @@ public void ResultMatchingBaseliner_BaselinesTwoSimpleSarifLogs() int existingCount = currentLog.Runs[0].Results.Count - 1; - calculatedNextBaseline.Runs[0].Results.Where(r => r.BaselineState == BaselineState.Unchanged).Count().Should().Be(existingCount); + calculatedNextBaseline.Runs[0].Results.Where(r => r.BaselineState == BaselineState.Existing).Count().Should().Be(existingCount); if (existingCount > 0) { // In the event that we generated a SARIF run of only a single result, we will not have an 'existing' match // since we adjusted the sole result value by adding a property to it. - calculatedNextBaseline.Runs[0].Results.Where(r => r.BaselineState == BaselineState.Unchanged).First().TryGetProperty(SarifLogResultMatcher.ResultMatchingResultPropertyName, out Dictionary CurrentResultProperties).Should().BeTrue(); + calculatedNextBaseline.Runs[0].Results.Where(r => r.BaselineState == BaselineState.Existing).First().TryGetProperty(SarifLogResultMatcher.ResultMatchingResultPropertyName, out Dictionary CurrentResultProperties).Should().BeTrue(); CurrentResultProperties.Should().ContainKey("Run"); CurrentResultProperties["Run"].Should().BeEquivalentTo(currentLog.Runs[0].Id.InstanceGuid); } diff --git a/src/Sarif.UnitTests/Baseline/ResultMatching/SarifLogResultMatcherTests.cs b/src/Sarif.UnitTests/Baseline/ResultMatching/SarifLogResultMatcherTests.cs index 12803f069..c09436da9 100644 --- a/src/Sarif.UnitTests/Baseline/ResultMatching/SarifLogResultMatcherTests.cs +++ b/src/Sarif.UnitTests/Baseline/ResultMatching/SarifLogResultMatcherTests.cs @@ -78,9 +78,9 @@ public void SarifLogResultMatcher_BaselinesTwoSimpleSarifLogs() if (currentLog.Runs[0].Results.Count > 1) { - calculatedNextBaseline.Runs[0].Results.Where(r => r.BaselineState == BaselineState.Unchanged).Should().HaveCount(currentLog.Runs[0].Results.Count - 1); + calculatedNextBaseline.Runs[0].Results.Where(r => r.BaselineState == BaselineState.Existing).Should().HaveCount(currentLog.Runs[0].Results.Count - 1); - calculatedNextBaseline.Runs[0].Results.Where(r => r.BaselineState == BaselineState.Unchanged).First().TryGetProperty(SarifLogResultMatcher.ResultMatchingResultPropertyName, out Dictionary CurrentResultProperties).Should().BeTrue(); + calculatedNextBaseline.Runs[0].Results.Where(r => r.BaselineState == BaselineState.Existing).First().TryGetProperty(SarifLogResultMatcher.ResultMatchingResultPropertyName, out Dictionary CurrentResultProperties).Should().BeTrue(); CurrentResultProperties.Should().ContainKey("Run"); CurrentResultProperties["Run"].Should().BeEquivalentTo(currentLog.Runs[0].Id.InstanceGuid); } diff --git a/src/Sarif.UnitTests/Baseline/StrictBaselineUnitTests.cs b/src/Sarif.UnitTests/Baseline/StrictBaselineUnitTests.cs index f27ab1b21..690a4f1c4 100644 --- a/src/Sarif.UnitTests/Baseline/StrictBaselineUnitTests.cs +++ b/src/Sarif.UnitTests/Baseline/StrictBaselineUnitTests.cs @@ -28,10 +28,10 @@ public void StrictBaseline_SameResults_AllExisting() Run baseline = RandomSarifLogGenerator.GenerateRandomRunWithoutDuplicateIssues(random, Result.ValueComparer, random.Next(100)+5); Run next = baseline.DeepClone(); - Run result = strictBaseliner.CreateBaselinedRun(baseline, next); + Run run = strictBaseliner.CreateBaselinedRun(baseline, next); - result.Results.Should().OnlyContain(r => r.BaselineState == BaselineState.Unchanged); - result.Results.Should().HaveCount(baseline.Results.Count()); + run.Results.Should().OnlyContain(r => r.BaselineState == BaselineState.Existing); + run.Results.Should().HaveCount(baseline.Results.Count()); } [Fact] diff --git a/src/Sarif.UnitTests/Readers/IsSuppressedInSourceConverterTests.cs b/src/Sarif.UnitTests/Readers/IsSuppressedInSourceConverterTests.cs index 53cc5fa82..1c6be2640 100644 --- a/src/Sarif.UnitTests/Readers/IsSuppressedInSourceConverterTests.cs +++ b/src/Sarif.UnitTests/Readers/IsSuppressedInSourceConverterTests.cs @@ -97,7 +97,7 @@ public void BaselineState_None() } [Fact] - public void BaselineState_UnchangedAndUpdated() + public void BaselineState_Existing() { string expected = @"{ @@ -113,14 +113,8 @@ public void BaselineState_UnchangedAndUpdated() { ""message"": { ""text"": ""Some testing occurred."" - }, - ""baselineState"": ""unchanged"" - }, - { - ""message"": { - ""text"": ""Some testing occurred."" - }, - ""baselineState"": ""updated"" + }, + ""baselineState"": ""existing"" } ] } @@ -135,11 +129,7 @@ public void BaselineState_UnchangedAndUpdated() new Result { Message = new Message { Text = "Some testing occurred."}, - BaselineState = BaselineState.Unchanged - }, - new Result { - Message = new Message { Text = "Some testing occurred."}, - BaselineState = BaselineState.Updated + BaselineState = BaselineState.Existing } }); }); @@ -147,8 +137,7 @@ public void BaselineState_UnchangedAndUpdated() var sarifLog = JsonConvert.DeserializeObject(actual); Assert.Equal(SuppressionStates.None, sarifLog.Runs[0].Results[0].SuppressionStates); - Assert.Equal(BaselineState.Unchanged, sarifLog.Runs[0].Results[0].BaselineState); - Assert.Equal(BaselineState.Updated, sarifLog.Runs[0].Results[1].BaselineState); + Assert.Equal(BaselineState.Existing, sarifLog.Runs[0].Results[0].BaselineState); } } } diff --git a/src/Sarif/Autogenerated/BaselineState.cs b/src/Sarif/Autogenerated/BaselineState.cs index ce5e44cd4..4b0da4eb8 100644 --- a/src/Sarif/Autogenerated/BaselineState.cs +++ b/src/Sarif/Autogenerated/BaselineState.cs @@ -12,8 +12,7 @@ namespace Microsoft.CodeAnalysis.Sarif public enum BaselineState { None, - Unchanged, - Updated, + Existing, New, Absent } diff --git a/src/Sarif/Baseline/ResultMatching/DataStructures/MatchedResults.cs b/src/Sarif/Baseline/ResultMatching/DataStructures/MatchedResults.cs index daebe42be..bd2d20a6a 100644 --- a/src/Sarif/Baseline/ResultMatching/DataStructures/MatchedResults.cs +++ b/src/Sarif/Baseline/ResultMatching/DataStructures/MatchedResults.cs @@ -128,7 +128,7 @@ private Result ConstructExistingResult( Result result = CurrentResult.Result.DeepClone(); result.CorrelationGuid = PreviousResult.Result.CorrelationGuid; result.SuppressionStates = PreviousResult.Result.SuppressionStates; - result.BaselineState = BaselineState.Unchanged; + result.BaselineState = BaselineState.Existing; if (!PreviousResult.Result.TryGetProperty(SarifLogResultMatcher.ResultMatchingResultPropertyName, out OriginalResultMatchingProperties)) { diff --git a/src/Sarif/Baseline/ResultMatching/SarifLogMatcher.cs b/src/Sarif/Baseline/ResultMatching/SarifLogMatcher.cs index 2a5d74a07..3ebf20c3e 100644 --- a/src/Sarif/Baseline/ResultMatching/SarifLogMatcher.cs +++ b/src/Sarif/Baseline/ResultMatching/SarifLogMatcher.cs @@ -252,8 +252,7 @@ private SarifLog ConstructSarifLogFromMatchedResults( Result result = resultPair.CalculateBasedlinedResult(PropertyBagMergeBehavior); IList files = - (PropertyBagMergeBehavior.HasFlag(DictionaryMergeBehavior.InitializeFromOldest) && - (result.BaselineState == BaselineState.Unchanged || result.BaselineState == BaselineState.Updated)) + (PropertyBagMergeBehavior.HasFlag(DictionaryMergeBehavior.InitializeFromOldest) && result.BaselineState == BaselineState.Existing) ? resultPair.PreviousResult.OriginalRun.Files : resultPair.Run.Files; diff --git a/src/Sarif/Baseline/SarifLogBaseliner.cs b/src/Sarif/Baseline/SarifLogBaseliner.cs index fbc5f897d..66fdb48db 100644 --- a/src/Sarif/Baseline/SarifLogBaseliner.cs +++ b/src/Sarif/Baseline/SarifLogBaseliner.cs @@ -25,7 +25,7 @@ public Run CreateBaselinedRun(Run baseLine, Run nextLog) Result newResult = result.DeepClone(); newResult.BaselineState = - baseLine.Results.Contains(result, ResultComparator) ? BaselineState.Unchanged : BaselineState.New; + baseLine.Results.Contains(result, ResultComparator) ? BaselineState.Existing : BaselineState.New; differencedRun.Results.Add(newResult); } diff --git a/src/Sarif/CodeGenHints.json b/src/Sarif/CodeGenHints.json index 5af0d1b1f..2ad6b7d4f 100644 --- a/src/Sarif/CodeGenHints.json +++ b/src/Sarif/CodeGenHints.json @@ -444,8 +444,7 @@ "description": "The state of a result relative to a baseline of a previous run.", "zeroValueName": "None", "memberNames": [ - "Unchanged", - "Updated", + "Existing", "New", "Absent" ] diff --git a/src/Sarif/Schemata/sarif-schema.json b/src/Sarif/Schemata/sarif-schema.json index a76e47dc3..ffb0b23d6 100644 --- a/src/Sarif/Schemata/sarif-schema.json +++ b/src/Sarif/Schemata/sarif-schema.json @@ -1428,8 +1428,7 @@ "description": "The state of a result relative to a baseline of a previous run.", "enum": [ "new", - "unchanged", - "updated", + "existing", "absent" ] }, diff --git a/src/Sarif/Visitors/SarifTransformerUtilities.cs b/src/Sarif/Visitors/SarifTransformerUtilities.cs index c65e1e8b4..2e4e566d0 100644 --- a/src/Sarif/Visitors/SarifTransformerUtilities.cs +++ b/src/Sarif/Visitors/SarifTransformerUtilities.cs @@ -187,7 +187,7 @@ public static BaselineState CreateBaselineState(BaselineStateVersionOne v1Baseli case BaselineStateVersionOne.Absent: return BaselineState.Absent; case BaselineStateVersionOne.Existing: - return BaselineState.Unchanged; + return BaselineState.Existing; case BaselineStateVersionOne.New: return BaselineState.New; default: @@ -200,8 +200,7 @@ public static BaselineStateVersionOne CreateBaselineStateVersionOne(BaselineStat { case BaselineState.Absent: return BaselineStateVersionOne.Absent; - case BaselineState.Unchanged: - case BaselineState.Updated: + case BaselineState.Existing: return BaselineStateVersionOne.Existing; case BaselineState.New: return BaselineStateVersionOne.New; diff --git a/src/Sarif/Writers/PrereleaseCompatibilityTransformer.cs b/src/Sarif/Writers/PrereleaseCompatibilityTransformer.cs index f691dd75c..687fa3a22 100644 --- a/src/Sarif/Writers/PrereleaseCompatibilityTransformer.cs +++ b/src/Sarif/Writers/PrereleaseCompatibilityTransformer.cs @@ -47,28 +47,23 @@ public static SarifLog UpdateToCurrentVersion( switch (version) { - case "2.0.0-csd.2.beta.2019-01-24": - { - // SARIF TC31. Nothing to do. - break; - } - case "2.0.0-csd.2.beta.2019-01-09": { - modifiedLog |= ApplyChangesFromTC31(sarifLog); - break; + // SARIF TC30. Nothing to do. + break; } case "2.0.0-csd.2.beta.2018-10-10": + case "2.0.0-csd.2.beta.2018-10-10.1": + case "2.0.0-csd.2.beta.2018-10-10.2": { - // 2.0.0-csd.2.beta.2018-10-10 == changes through SARIF TC #25 - modifiedLog |= ApplyChangesFromTC25ThroughTC30( + // 2.0.0-csd.2.beta.2018-10-10 == changes through SARIF TC #25 + modifiedLog |= ApplyChangesFromTC25ThroughTC30( sarifLog, out fullyQualifiedLogicalNameToIndexMap, out fileLocationKeyToIndexMap, out ruleKeyToIndexMap); - modifiedLog |= ApplyChangesFromTC31(sarifLog); - break; + break; } default: @@ -79,8 +74,7 @@ public static SarifLog UpdateToCurrentVersion( out fullyQualifiedLogicalNameToIndexMap, out fileLocationKeyToIndexMap, out ruleKeyToIndexMap); - modifiedLog |= ApplyChangesFromTC31(sarifLog); - break; + break; } } @@ -117,32 +111,6 @@ public static SarifLog UpdateToCurrentVersion( return transformedSarifLog; } - private static bool ApplyChangesFromTC31(JObject sarifLog) - { - bool modifiedLog = UpdateSarifLogVersion(sarifLog); ; - - if (sarifLog["runs"] is JArray runs) - { - foreach (JObject run in runs) - { - if (run["results"] is JArray results) - { - foreach (JObject result in results) - { - string baselineState = (string)result["baselineState"]; - - if ("existing".Equals(baselineState)) - { - result["baselineState"] = "unchanged"; - modifiedLog = true; - } - } - } - } - } - return modifiedLog; - } - private static bool ApplyChangesFromTC25ThroughTC30( JObject sarifLog, out Dictionary fullyQualifiedLogicalNameToIndexMap,