OPC # 0009: Gitea and OPC Build Webhooks

This commit is contained in:
amadzarak
2026-04-26 16:12:00 -04:00
parent 2badb5264b
commit 13ff5eb926
15 changed files with 612 additions and 13 deletions
+12
View File
@@ -6,6 +6,7 @@ using ControlPlane.Worker.Services;
using ControlPlane.Worker.Steps;
using Keycloak.AuthServices.Sdk;
using MassTransit;
using Npgsql;
var builder = Host.CreateApplicationBuilder(args);
@@ -26,6 +27,16 @@ builder.Services.AddKeycloakAdminHttpClient(o =>
// Custom admin client - handles realm creation, roles, role assignment (not in SDK)
builder.Services.AddSingleton<KeycloakAdminClient>();
// Named HttpClient for Gitea commit status API (self-signed cert)
builder.Services.AddHttpClient("gitea").ConfigurePrimaryHttpMessageHandler(() =>
new HttpClientHandler { ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator });
// opcdb for build/release history tracking
var opcConnStr = builder.Configuration.GetConnectionString("opcdb");
builder.Services.AddSingleton(NpgsqlDataSource.Create(
!string.IsNullOrWhiteSpace(opcConnStr) ? opcConnStr : "Host=127.0.0.1;Port=5433;Database=opcdb;Username=postgres;Password=controlplane-dev"));
builder.Services.AddSingleton<BuildHistoryService>();
// Docker container manager for per-tenant Clarity.Server instances
builder.Services.AddSingleton<ClarityContainerService>();
@@ -44,6 +55,7 @@ builder.Services.AddMassTransit(x =>
x.SetKebabCaseEndpointNameFormatter();
x.AddConsumer<ProvisioningConsumer>();
x.AddConsumer<BuildConsumer>();
x.UsingRabbitMq((ctx, cfg) =>
{