audit, advisories and doctors/setup work

This commit is contained in:
master
2026-01-13 18:53:39 +02:00
parent 9ca7cb183e
commit d7be6ba34b
811 changed files with 54242 additions and 4056 deletions

View File

@@ -0,0 +1,65 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
namespace StellaOps.Scanner.Storage.Oci;
public static class ServiceCollectionExtensions
{
public static IServiceCollection AddOciImageInspector(
this IServiceCollection services,
Action<OciRegistryOptions> configure)
{
ArgumentNullException.ThrowIfNull(services);
ArgumentNullException.ThrowIfNull(configure);
services.AddOptions<OciRegistryOptions>().Configure(configure);
RegisterInspectorServices(services);
return services;
}
public static IServiceCollection AddOciImageInspector(
this IServiceCollection services,
IConfiguration configuration)
{
ArgumentNullException.ThrowIfNull(services);
ArgumentNullException.ThrowIfNull(configuration);
services.AddOptions<OciRegistryOptions>().Bind(configuration);
RegisterInspectorServices(services);
return services;
}
private static void RegisterInspectorServices(IServiceCollection services)
{
services.TryAddSingleton<TimeProvider>(TimeProvider.System);
services.AddHttpClient(OciImageInspector.HttpClientName)
.ConfigurePrimaryHttpMessageHandler(sp =>
{
var options = sp.GetRequiredService<IOptions<OciRegistryOptions>>().Value;
if (!options.AllowInsecure)
{
return new HttpClientHandler();
}
return new HttpClientHandler
{
ServerCertificateCustomValidationCallback =
HttpClientHandler.DangerousAcceptAnyServerCertificateValidator
};
});
services.TryAddSingleton<IOciImageInspector>(sp =>
{
var options = sp.GetRequiredService<IOptions<OciRegistryOptions>>().Value;
return new OciImageInspector(
sp.GetRequiredService<IHttpClientFactory>(),
options,
sp.GetRequiredService<ILogger<OciImageInspector>>(),
sp.GetRequiredService<TimeProvider>());
});
}
}