Skip to content

Commit c8d03f0

Browse files
authored
Remove dependency on old NuGet.Services.Configuration (#10686)
Resolve NuGet/Engineering#5669. Progress on NuGet/Engineering#6227.
1 parent 09abdde commit c8d03f0

3 files changed

Lines changed: 74 additions & 13 deletions

File tree

NuGetGallery.FunctionalTests.sln

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
33
# Visual Studio Version 18
4-
VisualStudioVersion = 18.3.11322.18 main
4+
VisualStudioVersion = 18.3.11322.18
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{37E5C8A5-C7A6-400E-A0EA-6C2C6F9B160D}"
77
ProjectSection(SolutionItems) = preProject
@@ -12,6 +12,14 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NuGetGallery.FunctionalTest
1212
EndProject
1313
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NuGetGallery.FunctionalTests.Core", "tests\NuGetGallery.FunctionalTests.Core\NuGetGallery.FunctionalTests.Core.csproj", "{8496C7FE-8A93-4D2E-A9DC-5DE44017187C}"
1414
EndProject
15+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NuGet.Services.KeyVault", "src\NuGet.Services.KeyVault\NuGet.Services.KeyVault.csproj", "{62CBCFA4-FD1F-5454-7934-0220E9A6651C}"
16+
EndProject
17+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{975E68D2-957C-4C58-84EB-75E900CE17E0}"
18+
EndProject
19+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NuGet.Services.Configuration", "src\NuGet.Services.Configuration\NuGet.Services.Configuration.csproj", "{2A118C67-FC6D-5A6F-035B-D41A64046CBA}"
20+
EndProject
21+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{C28C993D-C81E-4406-B711-34CF72C41C39}"
22+
EndProject
1523
Global
1624
GlobalSection(SolutionConfigurationPlatforms) = preSolution
1725
Debug|Any CPU = Debug|Any CPU
@@ -26,10 +34,24 @@ Global
2634
{8496C7FE-8A93-4D2E-A9DC-5DE44017187C}.Debug|Any CPU.Build.0 = Debug|Any CPU
2735
{8496C7FE-8A93-4D2E-A9DC-5DE44017187C}.Release|Any CPU.ActiveCfg = Release|Any CPU
2836
{8496C7FE-8A93-4D2E-A9DC-5DE44017187C}.Release|Any CPU.Build.0 = Release|Any CPU
37+
{62CBCFA4-FD1F-5454-7934-0220E9A6651C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
38+
{62CBCFA4-FD1F-5454-7934-0220E9A6651C}.Debug|Any CPU.Build.0 = Debug|Any CPU
39+
{62CBCFA4-FD1F-5454-7934-0220E9A6651C}.Release|Any CPU.ActiveCfg = Release|Any CPU
40+
{62CBCFA4-FD1F-5454-7934-0220E9A6651C}.Release|Any CPU.Build.0 = Release|Any CPU
41+
{2A118C67-FC6D-5A6F-035B-D41A64046CBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
42+
{2A118C67-FC6D-5A6F-035B-D41A64046CBA}.Debug|Any CPU.Build.0 = Debug|Any CPU
43+
{2A118C67-FC6D-5A6F-035B-D41A64046CBA}.Release|Any CPU.ActiveCfg = Release|Any CPU
44+
{2A118C67-FC6D-5A6F-035B-D41A64046CBA}.Release|Any CPU.Build.0 = Release|Any CPU
2945
EndGlobalSection
3046
GlobalSection(SolutionProperties) = preSolution
3147
HideSolutionNode = FALSE
3248
EndGlobalSection
49+
GlobalSection(NestedProjects) = preSolution
50+
{073797B8-8D6C-4A82-9788-C38848D4CC59} = {C28C993D-C81E-4406-B711-34CF72C41C39}
51+
{8496C7FE-8A93-4D2E-A9DC-5DE44017187C} = {C28C993D-C81E-4406-B711-34CF72C41C39}
52+
{62CBCFA4-FD1F-5454-7934-0220E9A6651C} = {975E68D2-957C-4C58-84EB-75E900CE17E0}
53+
{2A118C67-FC6D-5A6F-035B-D41A64046CBA} = {975E68D2-957C-4C58-84EB-75E900CE17E0}
54+
EndGlobalSection
3355
GlobalSection(ExtensibilityGlobals) = postSolution
3456
SolutionGuid = {7A4EF1D3-E31D-4FE0-A407-79B054848111}
3557
EndGlobalSection

tests/NuGetGallery.FunctionalTests.Core/EnvVarWrapperSecretReader.cs

Lines changed: 47 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System;
55
using System.Threading.Tasks;
66
using Microsoft.Extensions.Logging;
7+
using Microsoft.Extensions.Logging.Abstractions;
78
using NuGet.Services.KeyVault;
89

910
namespace NuGetGallery.FunctionalTests
@@ -12,9 +13,15 @@ class EnvVarWrapperSecretReader : ISecretReader
1213
{
1314
private readonly Lazy<ISecretReader> _secretReader;
1415

15-
public EnvVarWrapperSecretReader(ISecretReaderFactory factory) => _secretReader = new Lazy<ISecretReader>(factory.CreateSecretReader);
16-
public Task<string> GetSecretAsync(string secretName)=> GetSecretAsync(secretName, logger: null);
17-
public Task<ISecret> GetSecretObjectAsync(string secretName) => GetSecretObjectAsync(secretName, logger: null);
16+
public EnvVarWrapperSecretReader(ISecretReaderFactory factory)
17+
{
18+
_secretReader = new Lazy<ISecretReader>(factory.CreateSecretReader);
19+
}
20+
21+
public Task<string> GetSecretAsync(string secretName)
22+
{
23+
return GetSecretAsync(secretName, NullLogger.Instance);
24+
}
1825

1926
public Task<string> GetSecretAsync(string secretName, ILogger logger)
2027
{
@@ -26,6 +33,26 @@ public Task<string> GetSecretAsync(string secretName, ILogger logger)
2633
return _secretReader.Value.GetSecretAsync(secretName, logger);
2734
}
2835

36+
public string GetSecret(string secretName)
37+
{
38+
return GetSecret(secretName, NullLogger.Instance);
39+
}
40+
41+
public string GetSecret(string secretName, ILogger logger)
42+
{
43+
if (TryGetFromEnvironmentVariable(secretName, logger) is string envVarValue)
44+
{
45+
return envVarValue;
46+
}
47+
48+
return _secretReader.Value.GetSecret(secretName, logger);
49+
}
50+
51+
public Task<ISecret> GetSecretObjectAsync(string secretName)
52+
{
53+
return GetSecretObjectAsync(secretName, NullLogger.Instance);
54+
}
55+
2956
public Task<ISecret> GetSecretObjectAsync(string secretName, ILogger logger)
3057
{
3158
if (TryGetFromEnvironmentVariable(secretName, logger) is string envVarValue)
@@ -37,7 +64,23 @@ public Task<ISecret> GetSecretObjectAsync(string secretName, ILogger logger)
3764
return _secretReader.Value.GetSecretObjectAsync(secretName, logger);
3865
}
3966

40-
private string TryGetFromEnvironmentVariable(string secretName, ILogger logger)
67+
public ISecret GetSecretObject(string secretName)
68+
{
69+
return GetSecretObject(secretName, NullLogger.Instance);
70+
}
71+
72+
public ISecret GetSecretObject(string secretName, ILogger logger)
73+
{
74+
if (TryGetFromEnvironmentVariable(secretName, logger) is string envVarValue)
75+
{
76+
ISecret result = new KeyVaultSecret(secretName, envVarValue, null);
77+
return result;
78+
}
79+
80+
return _secretReader.Value.GetSecretObject(secretName, logger);
81+
}
82+
83+
private static string TryGetFromEnvironmentVariable(string secretName, ILogger logger)
4184
{
4285
var message = $"Source of secret '{secretName}': ";
4386
var envVarValue = Environment.GetEnvironmentVariable(secretName);

tests/NuGetGallery.FunctionalTests.Core/NuGetGallery.FunctionalTests.Core.csproj

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,18 @@
88
<Reference Include="System.IO.Compression" />
99
</ItemGroup>
1010
<ItemGroup>
11-
<!--
12-
NuGet.Services.Configuration wants Microsoft.Extensions.* at 2.2.0.
13-
Without it, web tests fail to run and proper fix is not trivial, so
14-
this would have to do for now.
15-
Proper fix tracked here: https://github.com/NuGet/Engineering/issues/5669
16-
-->
17-
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" VersionOverride="2.2.0" />
11+
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" />
1812
<PackageReference Include="Microsoft.Playwright.Xunit" />
1913
<PackageReference Include="Microsoft.Web.Xdt" />
2014
<PackageReference Include="NuGet.Core" />
21-
<PackageReference Include="NuGet.Services.Configuration" VersionOverride="2.94.0" />
2215
<PackageReference Include="NuGet.Versioning" />
2316
<PackageReference Include="xunit" />
2417
<PackageReference Include="xunit.runner.visualstudio">
2518
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2619
<PrivateAssets>all</PrivateAssets>
2720
</PackageReference>
2821
</ItemGroup>
22+
<ItemGroup>
23+
<ProjectReference Include="..\..\src\NuGet.Services.Configuration\NuGet.Services.Configuration.csproj" />
24+
</ItemGroup>
2925
</Project>

0 commit comments

Comments
 (0)