Skip to content

Commit 01d8b59

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

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-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: 7 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,12 @@ private List<string> GetReachableNuGetFeeds(HashSet<string> feedsToCheck, bool i
258258
return reachableFeeds;
259259
}
260260

261+
private bool IsDefaultFeedReachable()
262+
{
263+
var (initialTimeout, tryCount) = GetFeedRequestSettings(isFallback: false);
264+
return IsFeedReachable(PublicNugetOrgFeed, initialTimeout, tryCount, allowNonTimeoutExceptions: false);
265+
}
266+
261267
private List<string> GetReachableFallbackNugetFeeds(HashSet<string>? feedsFromNugetConfigs)
262268
{
263269
var fallbackFeeds = EnvironmentVariables.GetURLs(EnvironmentVariableNames.FallbackNugetFeeds).ToHashSet();

0 commit comments

Comments
 (0)