Skip to content

Commit

Permalink
Expose utility method for building a disabled skimmers set. (#2787)
Browse files Browse the repository at this point in the history
* make the code for building the disabled skimmers set into public utility code

* fixups

* buildFix

* fix pr comment
  • Loading branch information
scottoneil-ms committed Apr 19, 2024
1 parent a61cf94 commit 1ddaf2a
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 9 deletions.
1 change: 1 addition & 0 deletions ReleaseHistory.md
Expand Up @@ -19,6 +19,7 @@
`System.Diagnostics.Debug` 4.3.0,
`System.IO.FileSystem.Primitives` 4.3.0,
`System.Text.Encoding.Extensions` 4.3.0.
* NEW: Expose `MultithreadedAnalyzeCommandBase.BuildDisabledSkimmersSet`, a utility function which extracts a disabled skimmer set from a `TContext`.

## **v4.5.0 [Sdk](https://www.nuget.org/packages/Sarif.Sdk/v4.5.0) | [Driver](https://www.nuget.org/packages/Sarif.Driver/v4.5.0) | [Converters](https://www.nuget.org/packages/Sarif.Converters/v4.5.0) | [Multitool](https://www.nuget.org/packages/Sarif.Multitool/v4.5.0) | [Multitool Library](https://www.nuget.org/packages/Sarif.Multitool.Library/v4.5.0)
* DEP: Downgrade `System.Text.Encoding.CodePages` from 8.0.0 to 4.3.0 in `Sarif`.
Expand Down
25 changes: 16 additions & 9 deletions src/Sarif.Driver/Sdk/MultithreadedAnalyzeCommandBase.cs
Expand Up @@ -1075,6 +1075,21 @@ private static SupportedPlatform GetCurrentRunningOS()
ThrowExitApplicationException(ExitReason.NoRulesLoaded);
}

ISet<string> disabledSkimmers = BuildDisabledSkimmersSet(context, skimmers);

if (disabledSkimmers.Count == skimmers.Count())
{
Errors.LogAllRulesExplicitlyDisabled(context);
ThrowExitApplicationException(ExitReason.NoRulesLoaded);
}

this.CheckIncompatibleRules(skimmers, context, disabledSkimmers);

MultithreadedAnalyzeTargets(context, skimmers, disabledSkimmers);
}

public static ISet<string> BuildDisabledSkimmersSet(TContext context, IEnumerable<Skimmer<TContext>> skimmers)
{
var disabledSkimmers = new SortedSet<string>();

foreach (Skimmer<TContext> skimmer in skimmers)
Expand Down Expand Up @@ -1108,15 +1123,7 @@ private static SupportedPlatform GetCurrentRunningOS()
}
}

if (disabledSkimmers.Count == skimmers.Count())
{
Errors.LogAllRulesExplicitlyDisabled(context);
ThrowExitApplicationException(ExitReason.NoRulesLoaded);
}

this.CheckIncompatibleRules(skimmers, context, disabledSkimmers);

MultithreadedAnalyzeTargets(context, skimmers, disabledSkimmers);
return disabledSkimmers;
}

protected virtual TContext DetermineApplicabilityAndAnalyze(TContext context,
Expand Down

0 comments on commit 1ddaf2a

Please sign in to comment.