From 3c0f57d7087cf05d1d02ab83678f91ec974e8c44 Mon Sep 17 00:00:00 2001 From: Anam Navied Date: Wed, 22 Feb 2023 16:28:50 -0500 Subject: [PATCH] write warning for deps for V3 --- src/code/FindHelper.cs | 6 ++++++ src/code/InstallHelper.cs | 10 +++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/code/FindHelper.cs b/src/code/FindHelper.cs index 9853d3f66..572bad82f 100644 --- a/src/code/FindHelper.cs +++ b/src/code/FindHelper.cs @@ -598,6 +598,12 @@ private IEnumerable SearchByNames(ServerApiCall currentServer, R // After retrieving all packages if (_includeDependencies) { + if (currentServer.repository.ApiVersion == PSRepositoryInfo.APIVersion.v3) + { + _cmdletPassedIn.WriteWarning("Installing dependencies is not currently supported for V3 server protocol repositories. The package will be installed without installing dependencies."); + yield break; + } + foreach (PSResourceInfo currentPkg in parentPkgs) { // Actually find and return the dependency packages diff --git a/src/code/InstallHelper.cs b/src/code/InstallHelper.cs index aadf7c4fe..bd84aa313 100644 --- a/src/code/InstallHelper.cs +++ b/src/code/InstallHelper.cs @@ -177,6 +177,7 @@ private List ProcessRepositories( { ServerApiCall currentServer = ServerFactory.GetServer(repo); ResponseUtil currentResponseUtil = ResponseUtilFactory.GetResponseUtil(repo); + bool installDepsForRepo = skipDependencyCheck; // If no more packages to install, then return if (_pkgNamesToInstall.Count == 0) { @@ -186,8 +187,15 @@ private List ProcessRepositories( string repoName = repo.Name; _cmdletPassedIn.WriteVerbose(string.Format("Attempting to search for packages in '{0}'", repoName)); + if (repo.ApiVersion == PSRepositoryInfo.APIVersion.v2 || repo.ApiVersion == PSRepositoryInfo.APIVersion.v3) { + if ((repo.ApiVersion == PSRepositoryInfo.APIVersion.v3) && (!installDepsForRepo)) + { + _cmdletPassedIn.WriteWarning("Installing dependencies is not currently supported for V3 server protocol repositories. The package will be installed without installing dependencies."); + installDepsForRepo = true; + } + return HttpInstall(_pkgNamesToInstall.ToArray(), repo, currentServer, currentResponseUtil, credential, scope); } else @@ -225,7 +233,7 @@ private List ProcessRepositories( tag: null, repository: new string[] { repoName }, credential: credential, - includeDependencies: !skipDependencyCheck).ToList(); + includeDependencies: !installDepsForRepo).ToList(); if (pkgsFromRepoToInstall.Count == 0) {