Skip to content

Commit 9359731

Browse files
committed
C#: Only use the default package source when using nuget.exe if it is reachable.
1 parent d801e28 commit 9359731

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/NugetExeWrapper.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ internal class NugetExeWrapper : IDisposable
3333
/// <summary>
3434
/// Create the package manager for a specified source tree.
3535
/// </summary>
36-
public NugetExeWrapper(FileProvider fileProvider, DependencyDirectory packageDirectory, Semmle.Util.Logging.ILogger logger)
36+
public NugetExeWrapper(FileProvider fileProvider, DependencyDirectory packageDirectory, Semmle.Util.Logging.ILogger logger, Func<bool> useDefaultFeed)
3737
{
3838
this.fileProvider = fileProvider;
3939
this.packageDirectory = packageDirectory;
@@ -43,7 +43,7 @@ public NugetExeWrapper(FileProvider fileProvider, DependencyDirectory packageDir
4343
{
4444
logger.LogInfo($"Found packages.config files, trying to use nuget.exe for package restore");
4545
nugetExe = ResolveNugetExe();
46-
if (HasNoPackageSource())
46+
if (HasNoPackageSource() && useDefaultFeed())
4747
{
4848
// We only modify or add a top level nuget.config file
4949
nugetConfigPath = Path.Combine(fileProvider.SourceDir.FullName, "nuget.config");

csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/NugetPackageRestorer.cs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ public HashSet<AssemblyLookupLocation> Restore()
164164
explicitNugetSources = MakeRestoreSourcesArgument(allFeeds);
165165
}
166166

167-
using (var nuget = new NugetExeWrapper(fileProvider, legacyPackageDirectory, logger))
167+
using (var nuget = new NugetExeWrapper(fileProvider, legacyPackageDirectory, logger, IsDefaultFeedReachable))
168168
{
169169
var count = nuget.InstallPackages();
170170

@@ -258,6 +258,17 @@ private List<string> GetReachableNuGetFeeds(HashSet<string> feedsToCheck, bool i
258258
return reachableFeeds;
259259
}
260260

261+
private bool IsDefaultFeedReachable()
262+
{
263+
if (CheckNugetFeedResponsiveness)
264+
{
265+
var (initialTimeout, tryCount) = GetFeedRequestSettings(isFallback: false);
266+
return IsFeedReachable(PublicNugetOrgFeed, initialTimeout, tryCount, allowNonTimeoutExceptions: false);
267+
}
268+
269+
return true;
270+
}
271+
261272
private List<string> GetReachableFallbackNugetFeeds(HashSet<string>? feedsFromNugetConfigs)
262273
{
263274
var fallbackFeeds = EnvironmentVariables.GetURLs(EnvironmentVariableNames.FallbackNugetFeeds).ToHashSet();

0 commit comments

Comments
 (0)