homeprojectsblogabout
  • github

  • email

  • x / twitter

  • linkedin

  • personal docs

  • rss

Β© 2026 Yehezkiel Wiradhika

AegisCI

August 29, 2026

πŸ›‘οΈ Consolidating DevSecOps: How AegisCI Unifies SAST, DAST, SCA, Secrets, and AI Remediation into a Single Binary

Stop wrestling with 8 different security tools in your CI/CD pipeline. Here is how a unified, Go-powered orchestrator with Policy-as-Code and AI-driven automated patching changes modern DevSecOps.


Author: Yehezkiel Wiradhika Estimated Read Time: 9 min
Tags: DevSecOps | AppSec | GitHub Actions | Golang | Cybersecurity | Software Supply Chain


The Chaos of Modern DevSecOps Pipelines

If you inspect a typical enterprise .github/workflows/ directory today, you will likely find a tangled web of security scanners:

  • One job downloads a 2GB Python environment for Static Application Security Testing (SAST).
  • Another runs a dedicated Secrets scanner.
  • A third invokes a container and dependency scanner for Software Composition Analysis (SCA).
  • A fourth audits Infrastructure as Code (IaC) templates.
  • A fifth checks GitHub Actions workflow permissions.
  • A sixth attempts to run Dynamic Application Security Testing (DAST).
❌ The Traditional Fragmented CI Security Pipeline:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ SAST Action  β”‚ ──> β”‚ Secret Scan  β”‚ ──> β”‚  SCA Action  β”‚ ──> β”‚  IaC Action  β”‚
β”‚ (200MB+ logs)β”‚     β”‚ (Custom JSON)β”‚     β”‚ (Custom XML) β”‚     β”‚ (Terminal UI)β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
       β”‚                    β”‚                    β”‚                    β”‚
       β–Ό                    β–Ό                    β–Ό                    β–Ό
                      🚨 Alert Fatigue & Pipeline Bloat 🚨
              (15+ minute build times, disconnected reports, no PR diffs)

The Inherent Problems:

  1. Pipeline Bloat & Latency: Chaining multiple independent GitHub Actions inflates CI pipeline runtime from 2 minutes to 15+ minutes.
  2. Alert Fatigue & Format Fragmentation: Every tool produces distinct JSON schemas, XML files, or raw console logs. Reconciling false positives across five different dashboards is an AppSec nightmare.
  3. Policy Drift: Suppressing a false positive requires scattered inline comments (// nosec, # noqa, .gitleaksignore), creating unmaintained bypasses.
  4. The "Throw-It-Over-The-Fence" Syndrome: Scanners tell developers what is broken, but provide zero assistance on how to fix it.

To solve this fragmentation, we built AegisCI β€” an open-source, all-in-one DevSecOps scanner, Policy-as-Code engine, and enterprise security orchestrator compiled into a single high-performance Go binary.


What is AegisCI?

AegisCI consolidates the industry’s top security engines into a single concurrent runtime with native GitHub Security tab integration, PR diff annotations, time-bound policy management, and automated LLM-driven patch generation.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                       AegisCI Enterprise Orchestrator                       β”‚
β”‚                                                                             β”‚
β”‚   1. Stack Auto-Detection & Smart Mode Router (pr-check / deep-scan)        β”‚
β”‚   2. Concurrent Engine Execution (Parallel Goroutines)                      β”‚
β”‚      β”œβ”€β”€ Semgrep (SAST)             β”œβ”€β”€ Trivy (SCA & SBOM)                  β”‚
β”‚      β”œβ”€β”€ Gitleaks (Secrets)         β”œβ”€β”€ Checkov (IaC & Containers)          β”‚
β”‚      β”œβ”€β”€ Zizmor (CI Workflows)      β”œβ”€β”€ OWASP ZAP (DAST Runtime)            β”‚
β”‚      └── Custom Plugins Engine (WASM / Executable Plugin SDK)               β”‚
β”‚                                                                             β”‚
β”‚   3. SARIF Aggregator, Deduplicator & Policy-as-Code Engine                 β”‚
β”‚   4. AI Remediation Engine (Automated Patch Diffs: patches/*.patch)         β”‚
β”‚   5. Unified Dispatcher:                                                    β”‚
β”‚      β”œβ”€β”€ GitHub Inline PR Annotations (::error file=...,line=...)           β”‚
β”‚      β”œβ”€β”€ Unified results.sarif -> GitHub Security / Code Scanning Tab       β”‚
β”‚      └── Enterprise Dashboard Webhook Telemetry Streamer                    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Instead of managing half a dozen disparate actions, you drop a single binary or GitHub Action into your repository. AegisCI discovers the tech stack, runs all relevant scanners concurrently using Go goroutines, normalizes findings into standard SARIF v2.1.0, applies corporate policy rules, and optionally generates Git patch files to fix vulnerabilities automatically.


The 6+ Security Pillars Under One Roof

AegisCI packages best-of-breed open-source security engines into unified execution targets:

PillarEngineTarget Scope & Capabilities
Secrets DetectionGitleaksDetects API keys, AWS credentials, RSA private keys, and tokens in code & Git history.
SASTSemgrepSource code vulnerability detection (SQL injections, XSS, insecure deserialization, cryptographic flaws).
SCA & SBOMTrivyScans lockfiles (go.mod, package-lock.json, requirements.txt, Cargo.lock) and exports CycloneDX / SPDX SBOMs.
IaC & ContainersCheckovAudits Terraform (.tf), Kubernetes manifests, Helm charts, and Dockerfiles for misconfigurations.
DASTOWASP ZAPRuntime API and web application vulnerability scanning with automated endpoint health probes.
CI Meta-SecurityZizmorAudits .github/workflows/*.yml for unpinned actions, privilege escalation, and script injections.
Threat IntelligenceVortex IntelReal-time queries for compromised packages, typosquatting attacks, and malicious dependencies.
AI RemediationLLM EngineAnalyzes AST context and outputs unified .patch files to fix identified flaws.

Core Innovations: What Makes AegisCI Different?

1. Smart Pipeline Routing (auto, pr-check, deep-scan)

Different CI triggers require different trade-offs between speed and thoroughness. AegisCI includes an intelligent event router:

  • pr-check Mode (< 3 minutes): Runs fast parallel scans (Secrets + SAST + SCA lockfiles + Workflow linters). Designed specifically for Pull Requests to provide instant feedback to engineers without blocking development velocity.
  • deep-scan Mode (Comprehensive): Executes the full security suite, including deep container filesystem scans, DAST runtime audits, SBOM generation, and license compliance audits.
  • auto Mode (Default): Inspects CI environment variables (GITHUB_EVENT_NAME, GITHUB_REF). It dynamically routes PR events to pr-check and merges on main/release branches to deep-scan.
// Inside pkg/router/router.go
func ResolvePlan(cfg *config.Config) *Plan {
    if cfg.Mode == config.ModeAuto {
        if isPullRequestEvent() {
            // Speed-optimized security gate
            return &Plan{EffectiveMode: config.ModePRCheck, EnableDAST: false}
        }
        // Full spectrum audit on push/merge
        return &Plan{EffectiveMode: config.ModeDeepScan, EnableDAST: true, GenerateSBOM: true}
    }
    // ...
}

2. High-Throughput Concurrent Execution

Instead of running scanners sequentially, AegisCI utilizes Go's lightweight concurrency model (sync.WaitGroup and buffered channels). All scanners execute in parallel goroutines, and their outputs are collected concurrently:

// Inside pkg/engine/engine.go
func (o *Orchestrator) Run(ctx context.Context, targetDir string) []ScanResult {
    var wg sync.WaitGroup
    results := make([]ScanResult, len(o.scanners))

    for i, scanner := range o.scanners {
        wg.Add(1)
        go func(idx int, sc Scanner) {
            defer wg.Done()
            start := time.Now()
            report, err := sc.Scan(ctx, targetDir)
            results[idx] = ScanResult{
                ScannerName: sc.Name(),
                Report:      report,
                Duration:    time.Since(start),
                Error:       err,
            }
        }(i, scanner)
    }

    wg.Wait()
    return results
}

This reduces scan latency by up to 70% compared to traditional sequential workflows.


3. Policy-as-Code with Time-Bound Suppressions (.aegisci.yml)

Security teams frequently struggle with permanent ignore lists that accumulate technical debt. AegisCI introduces time-bound policy suppressions, tolerance limits, and automated license governance:

version: "4.0"

settings:
  fail_on_unpatched_cves: false
  max_critical: 0
  max_high: 2
  max_medium: 10

# Time-bound exemptions
ignore:
  - id: "G401"
    path: "pkg/legacy/hash.go"
    reason: "MD5 used solely for non-cryptographic checksum caching"
    expires: "2026-12-31" # Scanner will automatically un-suppress after this date

  - id: "generic-api-key"
    path: "test/fixtures/**"
    reason: "Synthetic dummy tokens in unit test fixtures"
    expires: "2027-01-01"

# Software Supply Chain License Governance
license_policy:
  banned:
    - "GPL-3.0"
    - "AGPL-3.0"
    - "SSPL"
  allowed:
    - "MIT"
    - "Apache-2.0"
    - "BSD-3-Clause"

If a developer ignores a vulnerability with an expiry date, AegisCI enforces it until that timestamp. The moment the deadline passes, AegisCI automatically fails the build, preventing forgotten security exemptions from lingering indefinitely.


4. Automated AI Remediation & Patch Generation

Instead of dumping cryptic error traces on developers, AegisCI includes an AI Remediation Engine that inspects the vulnerable code snippet, queries LLMs (Google Gemini, OpenAI, or local Ollama endpoints), and outputs production-ready .patch files:

aegisci scan --target . --ai-remediation --ai-provider gemini --ai-api-key $GEMINI_API_KEY

When AegisCI finds an issue (such as an unsanitized SQL query or an unpinned GitHub Action), it produces:

--- a/pkg/database/query.go
+++ b/pkg/database/query.go
@@ -42,3 +42,3 @@
- query := fmt.Sprintf("SELECT * FROM users WHERE id = '%s'", userID)
- row := db.QueryRow(query)
+ query := "SELECT * FROM users WHERE id = $1"
+ row := db.QueryRow(query, userID)

Developers can apply the suggested fix instantly using standard Git tooling:

git apply patches/patch-01-sql-injection.patch

5. Native GitHub Integration: Inline PR Diff Annotations & SARIF

AegisCI speaks native GitHub Actions workflow formatting. When run inside a pull request, it emits direct workflow commands:

::error file=src/auth.go,line=42,title=SQL Injection Detected::Unsanitized input passed directly to database query execution.

This renders the vulnerability right in the pull request review interface, directly over the line of code that introduced it:

GitHub PR Inline AnnotationZoom

Furthermore, all findings are merged into a single deduplicated results.sarif file uploaded to GitHub's Security β†’ Code scanning alerts dashboard.


Step-by-Step Implementation Guide

1. Local Installation

AegisCI is cross-compiled for Linux (amd64/arm64), macOS (Apple Silicon/Intel), and Windows.

# macOS & Linux via Homebrew
brew tap yehezkiel1086/tap
brew install aegisci

# Debian / Ubuntu
curl -sLO https://github.com/yehezkiel1086/AegisCI/releases/latest/download/aegisci_linux_amd64.deb
sudo dpkg -i aegisci_linux_amd64.deb

# Go Developers
go install github.com/yehezkiel1086/AegisCI/cmd/aegisci@latest

2. Running a Local Scan

Scan your local repository before committing code:

# Quick local scan
aegisci scan --target .

# Deep scan with SBOM export
aegisci scan --target . --mode deep-scan --sbom --sbom-format cyclonedx-json

# Scan a live staging URL for runtime vulnerabilities (DAST)
aegisci scan --target . --dast --dast-target-url https://staging.myapp.internal --fail-on CRITICAL

3. Adding to GitHub Actions (.github/workflows/security.yml)

Here is a complete, enterprise-ready workflow recipe:

name: AegisCI DevSecOps Audit

on:
  push:
    branches: [ "main", "develop" ]
  pull_request:
    branches: [ "main" ]

jobs:
  security-audit:
    name: AegisCI Unified Security Gate
    runs-on: ubuntu-latest
    permissions:
      contents: read
      security-events: write   # Required for GitHub Code Scanning SARIF upload
      pull-requests: write     # Required for inline PR annotations

    steps:
      - name: Checkout Code
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Run AegisCI Security Suite
        uses: yehezkiel1086/AegisCI@v1
        with:
          mode: 'auto'
          fail-on-severity: 'HIGH'
          sbom: 'true'
          ai-remediation: 'true'
          ai-provider: 'gemini'
          ai-api-key: ${{ secrets.GEMINI_API_KEY }}

      - name: Upload SBOM Report
        if: always()
        uses: actions/upload-artifact@v4
        with:
          name: software-bill-of-materials
          path: sbom.cdx.json

Enterprise Extensibility: The Plugin SDK

Need to enforce proprietary internal rules, custom compliance standards, or bespoke static analysis scripts?

AegisCI supports custom executable plugins (WASM binaries, Python scripts, Go binaries, or Bash scripts). Simply place your executable in .aegisci/plugins/:

.aegisci/
└── plugins/
    β”œβ”€β”€ custom-pci-dss-check.py
    └── internal-crypto-linter.sh

Any binary that responds to --target <dir> --output <path> --format sarif is automatically discovered and executed concurrently alongside standard scanners, seamlessly merging into the master SARIF report.


Summary & Next Steps

Shifting left shouldn't mean overwhelming your engineering team with dozens of uncoordinated security tools and 20-minute CI delays. By centralizing DevSecOps into a unified orchestrator, AegisCI delivers:

  1. Simplicity: One binary, one config file (.aegisci.yml), one GitHub Action.
  2. Speed: Parallel multi-engine execution with smart mode routing (< 3 min PR checks).
  3. Actionable Feedback: Real inline PR diff comments and automated .patch fixes.
  4. Governance: Time-bound policy suppressions and license compliance enforcement.

Get Involved:

  • ⭐ GitHub Repository: github.com/yehezkiel1086/AegisCI
  • πŸ“– Documentation & Recipes: Complete Usage Guide
  • πŸ“¦ GitHub Marketplace: AegisCI Action

Have thoughts on the future of DevSecOps consolidation and AI remediation? Leave a comment below or join the discussion on GitHub!

On this page