Skip to content

Commit 63c5ea3

Browse files
committed
Resolve code review feedback
1 parent b9deb95 commit 63c5ea3

8 files changed

+52
-56
lines changed

src/code/CredentialProvider.cs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -160,13 +160,8 @@ internal static PSCredential GetCredentialsFromProvider(Uri uri, PSCmdlet cmdlet
160160
if (Environment.OSVersion.Platform == PlatformID.Unix)
161161
{
162162
FileInfo fileInfo = new FileInfo(credProviderPath);
163-
string resolvedFilePath = Utils.GetCaseInsensitiveFilePath(fileInfo.Directory.FullName, _credProviderDll);
164-
if (resolvedFilePath != null)
165-
{
166-
credProviderPath = resolvedFilePath;
167-
}
168-
else
169-
{
163+
if (!Utils.TryGetCaseInsensitiveFilePath(fileInfo.Directory.FullName, _credProviderDll, out credProviderPath))
164+
{
170165
cmdletPassedIn.WriteError(new ErrorRecord(
171166
new FileNotFoundException($"Path found '{credProviderPath}' is not a valid Azure Artifact Credential Provider executable. See https://github.com/NuGet/Home/wiki/NuGet-cross-plat-authentication-plugin#plugin-installation-and-discovery to set up the Credential Provider."),
172167
"CredentialProviderFileNotFound",

src/code/FindHelper.cs

Lines changed: 3 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -204,13 +204,7 @@ public IEnumerable<PSResourceInfo> FindByResourceName(
204204
repositoryNamesToSearch.Add(currentRepository.Name);
205205

206206
// Set network credentials via passed in credentials, AzArtifacts CredentialProvider, or SecretManagement.
207-
if (currentRepository.CredentialProvider.Equals(PSRepositoryInfo.CredentialProviderType.AzArtifacts))
208-
{
209-
_networkCredential = Utils.SetCredentialProviderNetworkCredential(currentRepository, _networkCredential, _cmdletPassedIn);
210-
}
211-
else {
212-
_networkCredential = Utils.SetSecretManagementNetworkCredential(currentRepository, _networkCredential, _cmdletPassedIn);
213-
}
207+
_networkCredential = Utils.SetNetworkCredentials(currentRepository, _networkCredential, _cmdletPassedIn);
214208

215209
ServerApiCall currentServer = ServerFactory.GetServer(currentRepository, _cmdletPassedIn, _networkCredential);
216210
if (currentServer == null)
@@ -398,14 +392,7 @@ public IEnumerable<PSCommandResourceInfo> FindByCommandOrDscResource(
398392
repositoryNamesToSearch.Add(currentRepository.Name);
399393

400394
// Set network credentials via passed in credentials, AzArtifacts CredentialProvider, or SecretManagement.
401-
if (currentRepository.CredentialProvider.Equals(PSRepositoryInfo.CredentialProviderType.AzArtifacts))
402-
{
403-
_networkCredential = Utils.SetCredentialProviderNetworkCredential(currentRepository, _networkCredential, _cmdletPassedIn);
404-
}
405-
else
406-
{
407-
_networkCredential = Utils.SetSecretManagementNetworkCredential(currentRepository, _networkCredential, _cmdletPassedIn);
408-
}
395+
_networkCredential = Utils.SetNetworkCredentials(currentRepository, _networkCredential, _cmdletPassedIn);
409396

410397
ServerApiCall currentServer = ServerFactory.GetServer(currentRepository, _cmdletPassedIn, _networkCredential);
411398
if (currentServer == null)
@@ -612,14 +599,7 @@ public IEnumerable<PSResourceInfo> FindByTag(
612599
repositoryNamesToSearch.Add(currentRepository.Name);
613600

614601
// Set network credentials via passed in credentials, AzArtifacts CredentialProvider, or SecretManagement.
615-
if (currentRepository.CredentialProvider.Equals(PSRepositoryInfo.CredentialProviderType.AzArtifacts))
616-
{
617-
_networkCredential = Utils.SetCredentialProviderNetworkCredential(currentRepository, _networkCredential, _cmdletPassedIn);
618-
}
619-
else
620-
{
621-
_networkCredential = Utils.SetSecretManagementNetworkCredential(currentRepository, _networkCredential, _cmdletPassedIn);
622-
}
602+
_networkCredential = Utils.SetNetworkCredentials(currentRepository, _networkCredential, _cmdletPassedIn);
623603

624604
ServerApiCall currentServer = ServerFactory.GetServer(currentRepository, _cmdletPassedIn, _networkCredential);
625605
if (currentServer == null)

src/code/InstallHelper.cs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -287,14 +287,7 @@ private List<PSResourceInfo> ProcessRepositories(
287287
sourceTrusted = currentRepository.Trusted || trustRepository;
288288

289289
// Set network credentials via passed in credentials, AzArtifacts CredentialProvider, or SecretManagement.
290-
if (currentRepository.CredentialProvider.Equals(PSRepositoryInfo.CredentialProviderType.AzArtifacts))
291-
{
292-
_networkCredential = Utils.SetCredentialProviderNetworkCredential(currentRepository, _networkCredential, _cmdletPassedIn);
293-
}
294-
else
295-
{
296-
_networkCredential = Utils.SetSecretManagementNetworkCredential(currentRepository, _networkCredential, _cmdletPassedIn);
297-
}
290+
_networkCredential = Utils.SetNetworkCredentials(currentRepository, _networkCredential, _cmdletPassedIn);
298291

299292
ServerApiCall currentServer = ServerFactory.GetServer(currentRepository, _cmdletPassedIn, _networkCredential);
300293

src/code/PublishHelper.cs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -381,14 +381,7 @@ internal void PushResource(string Repository, string modulePrefix, bool SkipDepe
381381
}
382382

383383
// Set network credentials via passed in credentials, AzArtifacts CredentialProvider, or SecretManagement.
384-
if (repository.CredentialProvider.Equals(PSRepositoryInfo.CredentialProviderType.AzArtifacts))
385-
{
386-
_networkCredential = Utils.SetCredentialProviderNetworkCredential(repository, _networkCredential, _cmdletPassedIn);
387-
}
388-
else
389-
{
390-
_networkCredential = Utils.SetSecretManagementNetworkCredential(repository, _networkCredential, _cmdletPassedIn);
391-
}
384+
_networkCredential = Utils.SetNetworkCredentials(repository, _networkCredential, _cmdletPassedIn);
392385

393386
// Check if dependencies already exist within the repo if:
394387
// 1) the resource to publish has dependencies and

src/code/RegisterPSResourceRepository.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,13 +121,12 @@ public object GetDynamicParameters()
121121
// It should also not appear when using the 'Repositories' parameter set.
122122
if (ParameterSetName.Equals(PSGalleryParameterSet) ||
123123
ParameterSetName.Equals(RepositoriesParameterSet) ||
124-
Uri.EndsWith(".azurecr.io") || Uri.EndsWith(".azurecr.io/") || Uri.Contains("mcr.microsoft.com"))
124+
Utils.IsContainerRegistry(Uri))
125125
{
126126
return null;
127127
}
128128

129-
_credentialProvider = new CredentialProviderDynamicParameters();
130-
return _credentialProvider;
129+
return new CredentialProviderDynamicParameters();
131130
}
132131

133132
#endregion

src/code/RepositorySettings.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -901,7 +901,7 @@ private static APIVersion GetRepoAPIVersion(Uri repoUri)
901901
// repositories with Uri Scheme "temp" may have PSPath Uri's like: "Temp:\repo" and we should consider them as local repositories.
902902
return APIVersion.Local;
903903
}
904-
else if (repoUri.AbsoluteUri.EndsWith(".azurecr.io") || repoUri.AbsoluteUri.EndsWith(".azurecr.io/") || repoUri.AbsoluteUri.Contains("mcr.microsoft.com"))
904+
else if (Utils.IsContainerRegistry(repoUri.AbsoluteUri))
905905
{
906906
return APIVersion.ContainerRegistry;
907907
}

src/code/SetPSResourceRepository.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,13 +114,12 @@ public object GetDynamicParameters()
114114
if (repository is not null &&
115115
(repository.Name.Equals("PSGallery", StringComparison.OrdinalIgnoreCase) ||
116116
ParameterSetName.Equals(RepositoriesParameterSet) ||
117-
repository.Uri.AbsoluteUri.EndsWith(".azurecr.io") || repository.Uri.AbsoluteUri.EndsWith(".azurecr.io/") || repository.Uri.AbsoluteUri.Contains("mcr.microsoft.com")))
117+
Utils.IsContainerRegistry(repository.Uri.AbsoluteUri)))
118118
{
119119
return null;
120120
}
121121

122-
_credentialProvider = new CredentialProviderDynamicParameters();
123-
return _credentialProvider;
122+
return new CredentialProviderDynamicParameters();
124123
}
125124

126125
#endregion

src/code/Utils.cs

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -968,6 +968,10 @@ public static NetworkCredential SetSecretManagementNetworkCredential(
968968
return networkCredential;
969969
}
970970

971+
#endregion
972+
973+
#region Credential methods
974+
971975
public static NetworkCredential SetCredentialProviderNetworkCredential(
972976
PSRepositoryInfo repository,
973977
NetworkCredential networkCredential,
@@ -992,6 +996,37 @@ public static NetworkCredential SetCredentialProviderNetworkCredential(
992996
return networkCredential;
993997
}
994998

999+
public static NetworkCredential SetNetworkCredentials(PSRepositoryInfo repository, NetworkCredential networkCredential, PSCmdlet cmdletPassedIn)
1000+
{
1001+
NetworkCredential networkCreds = new NetworkCredential();
1002+
if (repository.CredentialProvider.Equals(PSRepositoryInfo.CredentialProviderType.AzArtifacts))
1003+
{
1004+
cmdletPassedIn.WriteVerbose("Setting credential provider network credentials");
1005+
networkCreds = Utils.SetCredentialProviderNetworkCredential(repository, networkCredential, cmdletPassedIn);
1006+
}
1007+
else
1008+
{
1009+
cmdletPassedIn.WriteVerbose("Setting Secret Management network credentials");
1010+
networkCreds = Utils.SetSecretManagementNetworkCredential(repository, networkCredential, cmdletPassedIn);
1011+
}
1012+
1013+
return networkCreds;
1014+
}
1015+
1016+
#endregion
1017+
1018+
#region Container Registry methods
1019+
1020+
public static bool IsContainerRegistry(string uri)
1021+
{
1022+
if (uri.EndsWith(".azurecr.io") || uri.EndsWith(".azurecr.io/") || uri.Contains("mcr.microsoft.com") || uri.StartsWith("mcr.microsoft"))
1023+
{
1024+
return true;
1025+
}
1026+
1027+
return false;
1028+
}
1029+
9951030
#endregion
9961031

9971032
#region Path methods
@@ -1259,19 +1294,21 @@ internal static void GetMetadataFilesFromPath(string dirPath, string packageName
12591294
}
12601295
}
12611296

1262-
internal static string GetCaseInsensitiveFilePath(string directory, string fileName)
1297+
internal static bool TryGetCaseInsensitiveFilePath(string directory, string fileName, out string fileFound)
12631298
{
1299+
fileFound = String.Empty;
12641300
var files = Directory.GetFiles(directory);
12651301
foreach (var file in files)
12661302
{
12671303
if (string.Equals(Path.GetFileName(file), fileName, StringComparison.OrdinalIgnoreCase))
12681304
{
1269-
return file;
1305+
fileFound = file;
1306+
return true;
12701307
}
12711308
}
12721309

12731310
// File not found
1274-
return null;
1311+
return false;
12751312
}
12761313

12771314
#endregion

0 commit comments

Comments
 (0)