From 386903a9821bdf6f70614d1a2b6c4b4991cc2b31 Mon Sep 17 00:00:00 2001 From: Thomas Torggler Date: Wed, 1 Mar 2023 21:19:10 +0100 Subject: [PATCH 1/8] #969: Inject credentials to ISettings to pass them into PushRunner --- src/code/PublishPSResource.cs | 39 ++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/src/code/PublishPSResource.cs b/src/code/PublishPSResource.cs index 4b9277792..80889c675 100644 --- a/src/code/PublishPSResource.cs +++ b/src/code/PublishPSResource.cs @@ -846,11 +846,16 @@ private bool PushNupkg(string outputNupkgDir, string repoName, string repoUri, o var settings = NuGet.Configuration.Settings.LoadDefaultSettings(null, null, null); var success = false; + + var sourceProvider = new PackageSourceProvider(settings); + if (Credential != null) + InjectCredentialsToSettings(settings, sourceProvider, publishLocation); + try { PushRunner.Run( settings: Settings.LoadDefaultSettings(root: null, configFileName: null, machineWideSettings: null), - sourceProvider: new PackageSourceProvider(settings), + sourceProvider: sourceProvider, packagePaths: new List { fullNupkgFile }, source: publishLocation, apiKey: ApiKey, @@ -922,6 +927,34 @@ private bool PushNupkg(string outputNupkgDir, string repoName, string repoUri, o } - #endregion - } + private void InjectCredentialsToSettings(ISettings settings, IPackageSourceProvider sourceProvider, string source) + { + if (Credential == null) return; + var packageSource = sourceProvider.LoadPackageSources().FirstOrDefault(s => s.Source == source); + if (packageSource != null) + if (!packageSource.IsEnabled) packageSource.IsEnabled = true; + + var networkCred = Credential.GetNetworkCredential(); + string key; + if (packageSource == null) + { + key = "_" + Guid.NewGuid().ToString().Replace("-", ""); + settings.AddOrUpdate( + ConfigurationConstants.PackageSources, + new SourceItem(key, source)); + } + else + key = packageSource.Name; + + settings.AddOrUpdate( + ConfigurationConstants.CredentialsSectionName, + new CredentialsItem( + key, + networkCred.UserName, + networkCred.Password, + true, "")); + } + + #endregion + } } From f89bf39cd8b594b3be7e01322842f091c32722a4 Mon Sep 17 00:00:00 2001 From: alerickson <25858831+alerickson@users.noreply.github.com> Date: Thu, 4 May 2023 19:14:24 -0700 Subject: [PATCH 2/8] Update src/code/PublishPSResource.cs Co-authored-by: Aditya Patwardhan --- src/code/PublishPSResource.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/code/PublishPSResource.cs b/src/code/PublishPSResource.cs index 80889c675..e5645bf7a 100644 --- a/src/code/PublishPSResource.cs +++ b/src/code/PublishPSResource.cs @@ -929,7 +929,11 @@ private bool PushNupkg(string outputNupkgDir, string repoName, string repoUri, o private void InjectCredentialsToSettings(ISettings settings, IPackageSourceProvider sourceProvider, string source) { - if (Credential == null) return; + if (Credential == null) + { + return; + } + var packageSource = sourceProvider.LoadPackageSources().FirstOrDefault(s => s.Source == source); if (packageSource != null) if (!packageSource.IsEnabled) packageSource.IsEnabled = true; From d8eea56b2031338901b36f8c5743b837031e8e8a Mon Sep 17 00:00:00 2001 From: alerickson <25858831+alerickson@users.noreply.github.com> Date: Thu, 4 May 2023 19:14:33 -0700 Subject: [PATCH 3/8] Update src/code/PublishPSResource.cs Co-authored-by: Aditya Patwardhan --- src/code/PublishPSResource.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/code/PublishPSResource.cs b/src/code/PublishPSResource.cs index e5645bf7a..97e48e4a0 100644 --- a/src/code/PublishPSResource.cs +++ b/src/code/PublishPSResource.cs @@ -936,7 +936,13 @@ private void InjectCredentialsToSettings(ISettings settings, IPackageSourceProvi var packageSource = sourceProvider.LoadPackageSources().FirstOrDefault(s => s.Source == source); if (packageSource != null) - if (!packageSource.IsEnabled) packageSource.IsEnabled = true; + { + if (!packageSource.IsEnabled) + { + packageSource.IsEnabled = true; + } + } + var networkCred = Credential.GetNetworkCredential(); string key; From dcbc00f17a9df545901f3cd2760a15370301d5cb Mon Sep 17 00:00:00 2001 From: alerickson <25858831+alerickson@users.noreply.github.com> Date: Thu, 4 May 2023 19:14:39 -0700 Subject: [PATCH 4/8] Update src/code/PublishPSResource.cs Co-authored-by: Aditya Patwardhan --- src/code/PublishPSResource.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/code/PublishPSResource.cs b/src/code/PublishPSResource.cs index 97e48e4a0..a8874f319 100644 --- a/src/code/PublishPSResource.cs +++ b/src/code/PublishPSResource.cs @@ -954,7 +954,10 @@ private void InjectCredentialsToSettings(ISettings settings, IPackageSourceProvi new SourceItem(key, source)); } else - key = packageSource.Name; + { + key = packageSource.Name; + } + settings.AddOrUpdate( ConfigurationConstants.CredentialsSectionName, From 3105d5235dd19f290b5f5de5c30547c26db7fe94 Mon Sep 17 00:00:00 2001 From: alerickson <25858831+alerickson@users.noreply.github.com> Date: Thu, 4 May 2023 19:14:54 -0700 Subject: [PATCH 5/8] Update src/code/PublishPSResource.cs Co-authored-by: Aditya Patwardhan --- src/code/PublishPSResource.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/code/PublishPSResource.cs b/src/code/PublishPSResource.cs index a8874f319..81ca133a5 100644 --- a/src/code/PublishPSResource.cs +++ b/src/code/PublishPSResource.cs @@ -946,7 +946,9 @@ private void InjectCredentialsToSettings(ISettings settings, IPackageSourceProvi var networkCred = Credential.GetNetworkCredential(); string key; + if (packageSource == null) + { key = "_" + Guid.NewGuid().ToString().Replace("-", ""); settings.AddOrUpdate( From 682b930cb6999ccc67246386b34784096ac0c76d Mon Sep 17 00:00:00 2001 From: Anam Navied Date: Fri, 5 May 2023 14:00:54 -0400 Subject: [PATCH 6/8] Update src/code/PublishPSResource.cs Co-authored-by: Aditya Patwardhan --- src/code/PublishPSResource.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/code/PublishPSResource.cs b/src/code/PublishPSResource.cs index 81ca133a5..600ae6fc3 100644 --- a/src/code/PublishPSResource.cs +++ b/src/code/PublishPSResource.cs @@ -849,7 +849,10 @@ private bool PushNupkg(string outputNupkgDir, string repoName, string repoUri, o var sourceProvider = new PackageSourceProvider(settings); if (Credential != null) - InjectCredentialsToSettings(settings, sourceProvider, publishLocation); + { + InjectCredentialsToSettings(settings, sourceProvider, publishLocation); + } + try { From 389567943f94105b9ed3657c17faa9238ec422b6 Mon Sep 17 00:00:00 2001 From: Anam Navied Date: Fri, 5 May 2023 14:01:02 -0400 Subject: [PATCH 7/8] Update src/code/PublishPSResource.cs Co-authored-by: Aditya Patwardhan --- src/code/PublishPSResource.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/code/PublishPSResource.cs b/src/code/PublishPSResource.cs index 600ae6fc3..0b57f948a 100644 --- a/src/code/PublishPSResource.cs +++ b/src/code/PublishPSResource.cs @@ -963,7 +963,6 @@ private void InjectCredentialsToSettings(ISettings settings, IPackageSourceProvi key = packageSource.Name; } - settings.AddOrUpdate( ConfigurationConstants.CredentialsSectionName, new CredentialsItem( From f65a68c8b1f22365e36b7b706e9555853d626d1f Mon Sep 17 00:00:00 2001 From: Anam Navied Date: Fri, 5 May 2023 14:08:42 -0400 Subject: [PATCH 8/8] use named param for bool parameter, and use String.Empty for other parameter value --- src/code/PublishPSResource.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/code/PublishPSResource.cs b/src/code/PublishPSResource.cs index 0b57f948a..9063b9405 100644 --- a/src/code/PublishPSResource.cs +++ b/src/code/PublishPSResource.cs @@ -969,7 +969,8 @@ private void InjectCredentialsToSettings(ISettings settings, IPackageSourceProvi key, networkCred.UserName, networkCred.Password, - true, "")); + isPasswordClearText: true, + String.Empty)); } #endregion