Skip to content

Commit 29e1392

Browse files
committed
C#: Introduce interface for DependabotProxy.
1 parent 178f12c commit 29e1392

7 files changed

Lines changed: 46 additions & 26 deletions

File tree

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

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
namespace Semmle.Extraction.CSharp.DependencyFetching
1111
{
12-
public class DependabotProxy : IDisposable
12+
public class DependabotProxy : IDependabotProxy
1313
{
1414
/// <summary>
1515
/// Represents configurations for package registries.
@@ -21,24 +21,15 @@ public record class RegistryConfig(string Type, string URL);
2121
private readonly string host;
2222
private readonly string port;
2323

24-
/// <summary>
25-
/// The full address of the Dependabot proxy, if available.
26-
/// </summary>
27-
internal string Address { get; }
28-
/// <summary>
29-
/// The URLs of package registries that are configured for the proxy.
30-
/// </summary>
31-
internal HashSet<string> RegistryURLs { get; }
32-
/// <summary>
33-
/// The path to the temporary file where the certificate is stored.
34-
/// </summary>
35-
internal string? CertificatePath { get; private set; }
36-
/// <summary>
37-
/// The certificate used for the Dependabot proxy.
38-
/// </summary>
39-
internal X509Certificate2? Certificate { get; private set; }
24+
public string Address { get; }
25+
26+
public HashSet<string> RegistryURLs { get; }
27+
28+
public string? CertificatePath { get; private set; }
29+
30+
public X509Certificate2? Certificate { get; private set; }
4031

41-
internal static DependabotProxy? GetDependabotProxy(
32+
internal static IDependabotProxy? GetDependabotProxy(
4233
ILogger logger, IDiagnosticsWriter diagnosticsWriter, TemporaryDirectory tempWorkingDirectory)
4334
{
4435
// Setting HTTP(S)_PROXY and SSL_CERT_FILE have no effect on Windows or macOS,

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public sealed partial class DependencyManager : IDisposable, ICompilationInfoCon
2727
private readonly ILogger logger;
2828
private readonly IDiagnosticsWriter diagnosticsWriter;
2929
private readonly NugetPackageRestorer nugetPackageRestorer;
30-
private readonly DependabotProxy? dependabotProxy;
30+
private readonly IDependabotProxy? dependabotProxy;
3131
private readonly IDotNet dotnet;
3232
private readonly FileContent fileContent;
3333
private readonly IFileProvider fileProvider;

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ private DotNet(IDotNetCliInvoker dotnetCliInvoker, ILogger logger, bool runDotne
3131
}
3232
}
3333

34-
private DotNet(ILogger logger, string? dotNetPath, TemporaryDirectory tempWorkingDirectory, DependabotProxy? dependabotProxy) : this(new DotNetCliInvoker(logger, Path.Join(dotNetPath ?? string.Empty, "dotnet"), dependabotProxy), logger, dotNetPath is null, tempWorkingDirectory) { }
34+
private DotNet(ILogger logger, string? dotNetPath, TemporaryDirectory tempWorkingDirectory, IDependabotProxy? dependabotProxy) : this(new DotNetCliInvoker(logger, Path.Join(dotNetPath ?? string.Empty, "dotnet"), dependabotProxy), logger, dotNetPath is null, tempWorkingDirectory) { }
3535

3636
internal static IDotNet Make(IDotNetCliInvoker dotnetCliInvoker, ILogger logger, bool runDotnetInfo) => new DotNet(dotnetCliInvoker, logger, runDotnetInfo);
3737

38-
public static IDotNet Make(ILogger logger, string? dotNetPath, TemporaryDirectory tempWorkingDirectory, DependabotProxy? dependabotProxy) => new DotNet(logger, dotNetPath, tempWorkingDirectory, dependabotProxy);
38+
public static IDotNet Make(ILogger logger, string? dotNetPath, TemporaryDirectory tempWorkingDirectory, IDependabotProxy? dependabotProxy) => new DotNet(logger, dotNetPath, tempWorkingDirectory, dependabotProxy);
3939

4040
private static void HandleRetryExitCode143(string dotnet, int attempt, ILogger logger)
4141
{

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ namespace Semmle.Extraction.CSharp.DependencyFetching
1212
internal sealed class DotNetCliInvoker : IDotNetCliInvoker
1313
{
1414
private readonly ILogger logger;
15-
private readonly DependabotProxy? proxy;
15+
private readonly IDependabotProxy? proxy;
1616

1717
public string Exec { get; }
1818

19-
public DotNetCliInvoker(ILogger logger, string exec, DependabotProxy? dependabotProxy)
19+
public DotNetCliInvoker(ILogger logger, string exec, IDependabotProxy? dependabotProxy)
2020
{
2121
this.logger = logger;
2222
this.proxy = dependabotProxy;

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ internal sealed partial class FeedManager : IDisposable
2222
private readonly ILogger logger;
2323
private readonly IDotNet dotnet;
2424
private readonly IFileProvider fileProvider;
25-
private readonly DependabotProxy? dependabotProxy;
25+
private readonly IDependabotProxy? dependabotProxy;
2626
private readonly DependencyDirectory emptyPackageDirectory;
2727
private readonly ImmutableHashSet<string> privateRegistryFeeds;
2828

@@ -79,7 +79,7 @@ internal sealed partial class FeedManager : IDisposable
7979
/// </summary>
8080
public ImmutableHashSet<string> ReachableFallbackFeeds => lazyReachableFallbackFeeds.Value;
8181

82-
public FeedManager(ILogger logger, IDotNet dotnet, DependabotProxy? dependabotProxy, IFileProvider fileProvider)
82+
public FeedManager(ILogger logger, IDotNet dotnet, IDependabotProxy? dependabotProxy, IFileProvider fileProvider)
8383
{
8484
this.logger = logger;
8585
this.dotnet = dotnet;
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Security.Cryptography.X509Certificates;
4+
5+
namespace Semmle.Extraction.CSharp.DependencyFetching
6+
{
7+
public interface IDependabotProxy : IDisposable
8+
{
9+
/// <summary>
10+
/// The full address of the Dependabot proxy, if available.
11+
/// </summary>
12+
string Address { get; }
13+
14+
/// <summary>
15+
/// The URLs of package registries that are configured for the proxy.
16+
/// </summary>
17+
HashSet<string> RegistryURLs { get; }
18+
19+
/// <summary>
20+
/// The path to the temporary file where the certificate is stored.
21+
/// </summary>
22+
string? CertificatePath { get; }
23+
24+
/// <summary>
25+
/// The certificate used for the Dependabot proxy.
26+
/// </summary>
27+
X509Certificate2? Certificate { get; }
28+
}
29+
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public NugetPackageRestorer(
3232
IFileProvider fileProvider,
3333
FileContent fileContent,
3434
IDotNet dotnet,
35-
DependabotProxy? dependabotProxy,
35+
IDependabotProxy? dependabotProxy,
3636
IDiagnosticsWriter diagnosticsWriter,
3737
ILogger logger,
3838
ICompilationInfoContainer compilationInfoContainer)

0 commit comments

Comments
 (0)