Skip to content

Commit

Permalink
Small fix for configuration file and bicep version bump (#352)
Browse files Browse the repository at this point in the history
* net7 for azure pipeline

* fix for config file

* Bicep update and code fixes

* code review comment
  • Loading branch information
nonik0 authored Jan 17, 2024
1 parent 811b59e commit 64dcaad
Show file tree
Hide file tree
Showing 6 changed files with 41 additions and 10 deletions.
2 changes: 1 addition & 1 deletion azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ variables:
steps:
- task: UseDotNet@2
inputs:
version: '6.x'
version: '7.x'

- task: DotNetCoreCLI@2
displayName: 'Build'
Expand Down
2 changes: 1 addition & 1 deletion src/Analyzer.BicepProcessor/Analyzer.BicepProcessor.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Azure.Bicep.Core" Version="0.22.6" />
<PackageReference Include="Azure.Bicep.Core" Version="0.24.24" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
</ItemGroup>

Expand Down
15 changes: 9 additions & 6 deletions src/Analyzer.BicepProcessor/BicepTemplateProcessor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,13 @@
using Bicep.Core.Semantics.Namespaces;
using Bicep.Core.Syntax;
using Bicep.Core.Text;
using Bicep.Core.TypeSystem.Az;
using Bicep.Core.TypeSystem.Providers;
using Bicep.Core.Utils;
using Bicep.Core.Workspaces;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.WindowsAzure.ResourceStack.Common.Extensions;
using BicepEnvironment = Bicep.Core.Utils.Environment;
using IOFileSystem = System.IO.Abstractions.FileSystem;
using SysEnvironment = System.Environment;

namespace Microsoft.Azure.Templates.Analyzer.BicepProcessor
{
Expand All @@ -40,17 +42,18 @@ public static class BicepTemplateProcessor
/// <returns></returns>
public static IServiceCollection AddBicepCore(this IServiceCollection services) => services
.AddSingleton<INamespaceProvider, DefaultNamespaceProvider>()
.AddSingleton<IAzResourceTypeLoader, AzResourceTypeLoader>()
.AddSingleton<IAzResourceTypeLoaderFactory, AzResourceTypeLoaderFactory>()
.AddSingleton<IResourceTypeProviderFactory, ResourceTypeProviderFactory>()
.AddSingleton<IContainerRegistryClientFactory, ContainerRegistryClientFactory>()
.AddSingleton<ITemplateSpecRepositoryFactory, TemplateSpecRepositoryFactory>()
.AddSingleton<IModuleDispatcher, ModuleDispatcher>()
.AddSingleton<IArtifactRegistryProvider, DefaultArtifactRegistryProvider>()
.AddSingleton<ITokenCredentialFactory, TokenCredentialFactory>()
.AddSingleton<IFileResolver, FileResolver>()
.AddSingleton<IEnvironment, BicepEnvironment>()
.AddSingleton<IFileSystem, IOFileSystem>()
.AddSingleton<IConfigurationManager, ConfigurationManager>()
.AddSingleton<IBicepAnalyzer, LinterAnalyzer>()
.AddSingleton<IFeatureProviderFactory, FeatureProviderFactory>()
.AddSingleton<FeatureProviderFactory>() // needed for below
.AddSingleton<IFeatureProviderFactory, SourceMapFeatureProviderFactory>() // enable source mapping
.AddSingleton<ILinterRulesProvider, LinterRulesProvider>()
Expand Down Expand Up @@ -85,14 +88,14 @@ public static (string, BicepMetadata) ConvertBicepToJson(string bicepPath)
var bicepIssues = emitResult.Diagnostics
.Where(diag => diag.Level == DiagnosticLevel.Error)
.Select(diag => diag.Message);
throw new Exception($"Bicep issues found:{Environment.NewLine}{string.Join(Environment.NewLine, bicepIssues)}");
throw new Exception($"Bicep issues found:{SysEnvironment.NewLine}{string.Join(SysEnvironment.NewLine, bicepIssues)}");
}

string GetPathRelativeToEntryPoint(string absolutePath) => Path.GetRelativePath(
Path.GetDirectoryName(compilation.SourceFileGrouping.EntryPoint.FileUri.AbsolutePath), absolutePath);

// Collect all needed module info from SourceFileGrouping metadata
var moduleInfo = compilation.SourceFileGrouping.UriResultByArtifactReference.Select(sourceFileAndMetadata =>
var moduleInfo = compilation.SourceFileGrouping.FileUriResultByArtifactReference.Select(sourceFileAndMetadata =>
{
var bicepSourceFile = sourceFileAndMetadata.Key as BicepSourceFile;
var pathRelativeToEntryPoint = GetPathRelativeToEntryPoint(bicepSourceFile.FileUri.AbsolutePath);
Expand Down
6 changes: 6 additions & 0 deletions src/Analyzer.BicepProcessor/SourceMapFeatureProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -76,5 +76,11 @@ public SourceMapFeatureProvider(IFeatureProvider features)

/// <inheritdoc/>
public bool PublishSourceEnabled => features.PublishSourceEnabled;

/// <inheritdoc/>
public bool ProviderRegistryEnabled => features.ProviderRegistryEnabled;

/// <inheritdoc/>
public bool OptionalModuleNamesEnabled => features.OptionalModuleNamesEnabled;
}
}
20 changes: 20 additions & 0 deletions src/Analyzer.JsonRuleEngine.UnitTests/JsonRuleEngineTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,12 @@ public void FilterRules_ConfigurationIsNull_ExceptionIsThrown()
""ids"": [""RuleId0""]
}
}", "RuleId0", DisplayName = "Only Id RuleId0")]
[DataRow(@"{
""inclusions"": {},
""exclusions"": {
""ids"": [""RuleId3""]
}
}", "RuleId0", "RuleId1", "RuleId2", "RuleId4", DisplayName = "Empty inclusions object, exclude RuleId3")]
[DataRow(@"{
""exclusions"": {
""ids"": [""RuleId3""]
Expand Down Expand Up @@ -412,6 +418,20 @@ public void FilterRules_ConfigurationIsNull_ExceptionIsThrown()
""ids"": [""RuleId2""]
}
}", "RuleId2", "RuleId3", "RuleId4", DisplayName = "Include Severity 3; Exclusions object is ignored")]
[DataRow(@"{
""exclusions"": {},
""inclusions"": {
""ids"": [""RuleId3""]
}
}", "RuleId3", DisplayName = "Empty exclusions object listed first, include RuleId3; Exclusions object is ignored")]
[DataRow(@"{
""exclusions"": {
""ids"": [""RuleId3""]
},
""inclusions"": {
""ids"": [""RuleId3""]
}
}", "RuleId3", DisplayName = "Exclusions object listed first, include RuleId3; Exclusions object is ignored")]
[DataRow(@"{
""inclusions"": {
""severity"": [1]
Expand Down
6 changes: 4 additions & 2 deletions src/Analyzer.JsonRuleEngine/JsonRuleEngine.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,15 +64,17 @@ public void FilterRules(ConfigurationDefinition configuration)
if (configuration == null)
throw new ArgumentNullException(nameof(configuration));

if (configuration.InclusionsConfigurationDefinition != null)
if (configuration.InclusionsConfigurationDefinition?.Severity != null
|| configuration.InclusionsConfigurationDefinition?.Ids != null)
{
var includeSeverities = configuration.InclusionsConfigurationDefinition.Severity;
var includeIds = configuration.InclusionsConfigurationDefinition.Ids;

RuleDefinitions = RuleDefinitions.Where(r => (includeSeverities != null && includeSeverities.Contains(r.Severity)) ||
(includeIds != null && includeIds.Contains(r.Id))).ToList().AsReadOnly();
}
else if (configuration.ExclusionsConfigurationDefinition != null)
else if (configuration.ExclusionsConfigurationDefinition?.Severity != null
|| configuration.ExclusionsConfigurationDefinition?.Ids != null)
{
var excludeSeverities = configuration.ExclusionsConfigurationDefinition.Severity;
var excludeIds = configuration.ExclusionsConfigurationDefinition.Ids;
Expand Down

0 comments on commit 64dcaad

Please sign in to comment.