feat: Initialize Zastava Webhook service with TLS and Authority authentication
- Added Program.cs to set up the web application with Serilog for logging, health check endpoints, and a placeholder admission endpoint. - Configured Kestrel server to use TLS 1.3 and handle client certificates appropriately. - Created StellaOps.Zastava.Webhook.csproj with necessary dependencies including Serilog and Polly. - Documented tasks in TASKS.md for the Zastava Webhook project, outlining current work and exit criteria for each task.
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
namespace StellaOps.Scanner.Analyzers.Lang;
|
||||
|
||||
public sealed class LanguageUsageHints
|
||||
{
|
||||
private static readonly StringComparer Comparer = OperatingSystem.IsWindows()
|
||||
? StringComparer.OrdinalIgnoreCase
|
||||
: StringComparer.Ordinal;
|
||||
|
||||
private readonly ImmutableHashSet<string> _usedPaths;
|
||||
|
||||
public static LanguageUsageHints Empty { get; } = new(Array.Empty<string>());
|
||||
|
||||
public LanguageUsageHints(IEnumerable<string> usedPaths)
|
||||
{
|
||||
if (usedPaths is null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(usedPaths));
|
||||
}
|
||||
|
||||
_usedPaths = usedPaths
|
||||
.Select(Normalize)
|
||||
.Where(static path => path.Length > 0)
|
||||
.ToImmutableHashSet(Comparer);
|
||||
}
|
||||
|
||||
public bool IsPathUsed(string path)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(path))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
var normalized = Normalize(path);
|
||||
return _usedPaths.Contains(normalized);
|
||||
}
|
||||
|
||||
private static string Normalize(string path)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(path))
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
var full = Path.GetFullPath(path);
|
||||
return OperatingSystem.IsWindows()
|
||||
? full.Replace('\\', '/').TrimEnd('/')
|
||||
: full;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user