From e1d3e98257b39a30bde2284e22df82377c9af6e1 Mon Sep 17 00:00:00 2001 From: Anthony Martin <38542602+anthony-c-martin@users.noreply.github.com> Date: Wed, 13 Mar 2024 12:49:29 -0400 Subject: [PATCH] Avoid running no-hardcoded-env-urls linter rule in .bicepparam files --- .../ScenarioTests.cs | 17 +++++++++++++++++ .../Rules/NoHardcodedEnvironmentUrlsRule.cs | 7 +++++++ 2 files changed, 24 insertions(+) diff --git a/src/Bicep.Core.IntegrationTests/ScenarioTests.cs b/src/Bicep.Core.IntegrationTests/ScenarioTests.cs index a4499325869..14173a4e1f1 100644 --- a/src/Bicep.Core.IntegrationTests/ScenarioTests.cs +++ b/src/Bicep.Core.IntegrationTests/ScenarioTests.cs @@ -5724,6 +5724,23 @@ public void Test_Issue12347() result.ExcludingLinterDiagnostics().Should().NotHaveAnyDiagnostics(); } + // https://github.com/Azure/bicep/issues/13607 + [TestMethod] + public void Test_Issue13607() + { + var result = CompilationHelper.CompileParams( + ("parameters.bicepparam", """ +using 'main.bicep' + +param endpoint = 'management.core.windows.net' +"""), + ("main.bicep", """ +param endpoint string +""")); + + result.Should().NotHaveAnyDiagnostics(); + } + // https://github.com/Azure/bicep/issues/13250 [TestMethod] public void Test_Issue13250() diff --git a/src/Bicep.Core/Analyzers/Linter/Rules/NoHardcodedEnvironmentUrlsRule.cs b/src/Bicep.Core/Analyzers/Linter/Rules/NoHardcodedEnvironmentUrlsRule.cs index 2d98123e00a..855a325fd31 100644 --- a/src/Bicep.Core/Analyzers/Linter/Rules/NoHardcodedEnvironmentUrlsRule.cs +++ b/src/Bicep.Core/Analyzers/Linter/Rules/NoHardcodedEnvironmentUrlsRule.cs @@ -6,6 +6,7 @@ using Bicep.Core.Parsing; using Bicep.Core.Semantics; using Bicep.Core.Syntax; +using Bicep.Core.Workspaces; namespace Bicep.Core.Analyzers.Linter.Rules { @@ -28,6 +29,12 @@ public override string FormatMessage(params object[] values) public override IEnumerable AnalyzeInternal(SemanticModel model, DiagnosticLevel diagnosticLevel) { + if (model.SourceFile is BicepParamFile) + { + // The environment() function isn't available for .bicepparam files + return Enumerable.Empty(); + } + var disallowedHosts = GetConfigurationValue(model.Configuration.Analyzers, DisallowedHostsKey.ToLowerInvariant(), Array.Empty()).ToImmutableArray(); var excludedHosts = GetConfigurationValue(model.Configuration.Analyzers, ExcludedHostsKey.ToLowerInvariant(), Array.Empty()).ToImmutableArray();