Fix build and code structure improvements. New but essential UI functionality. CI improvements. Documentation improvements. AI module improvements.

This commit is contained in:
StellaOps Bot
2025-12-26 21:54:17 +02:00
parent 335ff7da16
commit c2b9cd8d1f
3717 changed files with 264714 additions and 48202 deletions

View File

@@ -0,0 +1,147 @@
# =============================================================================
# LOCAL CI TESTING ENVIRONMENT VARIABLES
# =============================================================================
# Copy this file to .env.local and customize for your local environment.
# The .env.local file is gitignored and should NOT be committed.
#
# Usage:
# cp devops/ci-local/.env.local.sample devops/ci-local/.env.local
# # Edit .env.local with your values
#
# =============================================================================
# =============================================================================
# DATABASE CONFIGURATION
# =============================================================================
# These values match docker-compose.ci.yaml defaults
# Port 5433 is used to avoid conflicts with development PostgreSQL
STELLAOPS_TEST_POSTGRES_CONNECTION="Host=localhost;Port=5433;Database=stellaops_test;Username=stellaops_ci;Password=ci_test_password"
# Alternative connection string format
POSTGRES_HOST=localhost
POSTGRES_PORT=5433
POSTGRES_USER=stellaops_ci
POSTGRES_PASSWORD=ci_test_password
POSTGRES_DB=stellaops_test
# =============================================================================
# CACHE & MESSAGING
# =============================================================================
# Valkey (Redis-compatible) - Port 6380 to avoid conflicts
VALKEY_CONNECTION_STRING="localhost:6380"
VALKEY_HOST=localhost
VALKEY_PORT=6380
# NATS JetStream - Port 4223 to avoid conflicts
#NATS_URL="nats://localhost:4223"
#NATS_HOST=localhost
#NATS_PORT=4223
# =============================================================================
# MOCK CONTAINER REGISTRY
# =============================================================================
# Local registry for release dry-run testing
REGISTRY_HOST=localhost:5001
REGISTRY_USERNAME=local
REGISTRY_PASSWORD=local
# =============================================================================
# MOCK S3 STORAGE (RustFS)
# =============================================================================
S3_ENDPOINT=http://localhost:9100
S3_ACCESS_KEY=rustfsadmin
S3_SECRET_KEY=rustfsadmin
S3_BUCKET=stellaops-ci
# =============================================================================
# SIGNING CONFIGURATION
# =============================================================================
# Mock signing keys for local testing - DO NOT USE IN PRODUCTION!
# Generate real keys with: cosign generate-key-pair
# Base64-encoded private key (leave empty to skip signing tests)
COSIGN_PRIVATE_KEY_B64=
# Password for the signing key
COSIGN_PASSWORD=local-test-password
# For keyless signing (requires internet)
# COSIGN_EXPERIMENTAL=1
# =============================================================================
# OPTIONAL: REAL SECRETS FOR FULL TESTING
# =============================================================================
# Uncomment and fill in for full integration testing
# These are NOT required for basic local CI runs
# Gitea API token for registry operations
# GITEA_TOKEN=
# GitHub Container Registry token
# GHCR_TOKEN=
# AI API key for AdvisoryAI tests
# AI_API_KEY=
# Slack webhook for notification tests
# SLACK_WEBHOOK=
# =============================================================================
# LOCAL CI CONFIGURATION
# =============================================================================
# Execution mode: docker, native, or act
LOCAL_CI_MODE=docker
# Number of parallel test runners (default: auto-detect CPU count)
LOCAL_CI_PARALLEL=4
# Enable verbose output
LOCAL_CI_VERBOSE=false
# Results output directory (relative to repo root)
LOCAL_CI_RESULTS_DIR=out/local-ci
# =============================================================================
# DEPLOYMENT FLAGS
# =============================================================================
# Always dry-run for local testing
DEPLOYMENT_DRY_RUN=true
# Mock deployment targets
DEPLOYMENT_HOST=localhost
DEPLOYMENT_USERNAME=testuser
DEPLOYMENT_PATH=/tmp/stellaops-deploy
# =============================================================================
# FEATURE FLAGS
# =============================================================================
# Skip tests requiring external network access
STELLAOPS_SKIP_NETWORK_TESTS=false
# Enable offline mode (uses cached/mock data)
STELLAOPS_OFFLINE_MODE=false
# Skip slow benchmark tests
SKIP_BENCHMARK_TESTS=true
# Skip chaos/resilience tests
SKIP_CHAOS_TESTS=true
# =============================================================================
# .NET BUILD CONFIGURATION
# =============================================================================
# These match CI environment exactly
DOTNET_NOLOGO=1
DOTNET_CLI_TELEMETRY_OPTOUT=1
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
TZ=UTC
# Build configuration
BUILD_CONFIGURATION=Release
# Warnings as errors (match CI)
DOTNET_WARNASERROR=true

View File

@@ -0,0 +1,48 @@
{
"action": "opened",
"number": 999,
"pull_request": {
"number": 999,
"title": "[Local CI] Test Pull Request",
"body": "This is a simulated pull request for local CI testing.",
"state": "open",
"draft": false,
"head": {
"ref": "feature/local-ci-test",
"sha": "0000000000000000000000000000000000000000",
"repo": {
"name": "git.stella-ops.org",
"full_name": "stellaops/git.stella-ops.org"
}
},
"base": {
"ref": "main",
"sha": "0000000000000000000000000000000000000001",
"repo": {
"name": "git.stella-ops.org",
"full_name": "stellaops/git.stella-ops.org"
}
},
"labels": [],
"user": {
"login": "local-ci-user",
"type": "User"
},
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
},
"repository": {
"name": "git.stella-ops.org",
"full_name": "stellaops/git.stella-ops.org",
"default_branch": "main",
"private": true,
"owner": {
"login": "stellaops",
"type": "Organization"
}
},
"sender": {
"login": "local-ci-user",
"type": "User"
}
}

View File

@@ -0,0 +1,54 @@
{
"ref": "refs/heads/main",
"before": "0000000000000000000000000000000000000001",
"after": "0000000000000000000000000000000000000002",
"created": false,
"deleted": false,
"forced": false,
"compare": "https://git.stella-ops.org/compare/000001...000002",
"commits": [
{
"id": "0000000000000000000000000000000000000002",
"message": "[Local CI] Test commit on main branch",
"timestamp": "2025-01-01T00:00:00Z",
"author": {
"name": "Local CI User",
"email": "local-ci@stella-ops.org"
},
"committer": {
"name": "Local CI User",
"email": "local-ci@stella-ops.org"
},
"added": [],
"removed": [],
"modified": ["src/Scanner/StellaOps.Scanner.Core/Scanner.cs"]
}
],
"head_commit": {
"id": "0000000000000000000000000000000000000002",
"message": "[Local CI] Test commit on main branch",
"timestamp": "2025-01-01T00:00:00Z",
"author": {
"name": "Local CI User",
"email": "local-ci@stella-ops.org"
}
},
"repository": {
"name": "git.stella-ops.org",
"full_name": "stellaops/git.stella-ops.org",
"default_branch": "main",
"private": true,
"owner": {
"login": "stellaops",
"type": "Organization"
}
},
"pusher": {
"name": "local-ci-user",
"email": "local-ci@stella-ops.org"
},
"sender": {
"login": "local-ci-user",
"type": "User"
}
}

View File

@@ -0,0 +1,21 @@
{
"ref": "refs/tags/suite-2026.04",
"ref_type": "tag",
"master_branch": "main",
"description": "StellaOps Suite Release 2026.04",
"pusher_type": "user",
"repository": {
"name": "git.stella-ops.org",
"full_name": "stellaops/git.stella-ops.org",
"default_branch": "main",
"private": true,
"owner": {
"login": "stellaops",
"type": "Organization"
}
},
"sender": {
"login": "release-manager",
"type": "User"
}
}

View File

@@ -0,0 +1,22 @@
{
"schedule": [
{
"cron": "0 5 * * *"
}
],
"repository": {
"name": "git.stella-ops.org",
"full_name": "stellaops/git.stella-ops.org",
"default_branch": "main",
"private": true,
"owner": {
"login": "stellaops",
"type": "Organization"
}
},
"sender": {
"login": "github-actions[bot]",
"type": "Bot"
},
"workflow": ".gitea/workflows/nightly-regression.yml"
}

View File

@@ -0,0 +1,31 @@
{
"action": "workflow_dispatch",
"inputs": {
"dry_run": "true",
"include_performance": "false",
"include_benchmark": "false",
"include_airgap": "false",
"include_chaos": "false",
"include_determinism": "false",
"include_resilience": "false",
"include_observability": "false",
"force_deploy": "false",
"environment": "local"
},
"ref": "refs/heads/main",
"repository": {
"name": "git.stella-ops.org",
"full_name": "stellaops/git.stella-ops.org",
"default_branch": "main",
"private": true,
"owner": {
"login": "stellaops",
"type": "Organization"
}
},
"sender": {
"login": "local-ci-user",
"type": "User"
},
"workflow": ".gitea/workflows/test-matrix.yml"
}