Add integration connector plugins and compose fixtures

Scaffold connector plugins for DockerRegistry, GitLab, Gitea,
Jenkins, and Nexus. Wire plugin discovery in IntegrationService
and add compose fixtures for local integration testing.

- 5 new connector plugins under src/Integrations/__Plugins/
- docker-compose.integrations.yml for local fixture services
- Advisory source catalog and source management API updates
- Integration e2e test specs and Playwright config
- Integration hub docs under docs/integrations/

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
master
2026-03-30 17:24:56 +03:00
parent 8931fc7c0c
commit 89a075ea21
23 changed files with 3033 additions and 6 deletions

View File

@@ -5,6 +5,11 @@ using StellaOps.Integrations.Persistence;
using StellaOps.Integrations.Plugin.GitHubApp;
using StellaOps.Integrations.Plugin.Harbor;
using StellaOps.Integrations.Plugin.InMemory;
using StellaOps.Integrations.Plugin.Gitea;
using StellaOps.Integrations.Plugin.Jenkins;
using StellaOps.Integrations.Plugin.Nexus;
using StellaOps.Integrations.Plugin.DockerRegistry;
using StellaOps.Integrations.Plugin.GitLab;
using StellaOps.Integrations.WebService;
using StellaOps.Integrations.WebService.AiCodeGuard;
using StellaOps.Integrations.WebService.Infrastructure;
@@ -46,6 +51,9 @@ builder.Services.AddStartupMigrations(
// Repository
builder.Services.AddScoped<IIntegrationRepository, PostgresIntegrationRepository>();
// HttpClient factory (used by AuthRef resolver for Vault)
builder.Services.AddHttpClient();
// Plugin loader
builder.Services.AddSingleton<IntegrationPluginLoader>(sp =>
{
@@ -67,7 +75,12 @@ builder.Services.AddSingleton<IntegrationPluginLoader>(sp =>
typeof(Program).Assembly,
typeof(GitHubAppConnectorPlugin).Assembly,
typeof(HarborConnectorPlugin).Assembly,
typeof(InMemoryConnectorPlugin).Assembly
typeof(InMemoryConnectorPlugin).Assembly,
typeof(GiteaConnectorPlugin).Assembly,
typeof(JenkinsConnectorPlugin).Assembly,
typeof(NexusConnectorPlugin).Assembly,
typeof(DockerRegistryConnectorPlugin).Assembly,
typeof(GitLabConnectorPlugin).Assembly
]);
return loader;