Skip to content

rust-util-collections/aip

Repository files navigation

AI Pipeline

License: MIT Version

AI Pipeline is an AI-powered CI/CD orchestration platform that automates the full software delivery lifecycle — from issue triage and AI-driven code fixes, through automated code review and merge, to multi-service, multi-environment deployment and design-to-code synchronization. Built in Rust with a React frontend.

Key Features

  • Multi-AI-tool support — Claude Code, Copilot CLI, and Gemini CLI with per-project configuration and capability-based routing
  • Automated issue fixing & multi-reviewer code review — Poll VCS for labeled issues, dispatch AI tools to generate fixes, open PRs, and auto-review with multiple AI reviewers, debate mechanism, and human escalation
  • Multi-service, multi-machine deployment — DAG-based service ordering, rolling host batches, health checks, rollback, and environment promotion
  • Design-to-code sync — Figma integration with automatic token extraction, component generation, and tech-stack detection
  • Role-based access control — Admin, Operator, and Viewer roles with JWT authentication and Argon2 password hashing
  • Real-time WebSocket updates — Subscribe to pipeline, deployment, and log channels for live progress streaming
  • Encrypted credential storage — Secure management of API keys, SSH credentials, and platform tokens
  • Comprehensive audit logging — Immutable trail of all user and system actions with scoped queries

Architecture Overview

AI Pipeline is a Rust workspace of 9 crates plus a React (Vite + Ant Design) frontend. The core crate defines domain models and plugin traits; crate-level adapters implement AI tools, VCS platforms, deploy targets, and design platforms. The server crate wires everything together behind an Axum HTTP/WebSocket API.

                         ┌──────────────┐
                         │    server    │  Axum HTTP/WS, auth, config
                         └──────┬───────┘
               ┌────────────────┼────────────────┐
               ▼                ▼                ▼
      ┌──────────────┐  ┌──────────────┐  ┌──────────────┐
      │  pipeline-   │  │    deploy    │  │ design-to-   │
      │   engine     │  │              │  │    code      │
      └──────┬───────┘  └──────┬───────┘  └──────┬───────┘
             │                 │                 │
    ┌────────┼──────┐          │          ┌──────┴────────┐
    ▼        ▼      ▼          │          ▼               ▼
┌────────┐┌─────┐┌─────┐       │  ┌───────────────┐┌─────────────┐
│ai-tools││ vcs ││obser│       │  │design-platform││observability│
│        ││     ││vabil│       │  │   (figma)     ││             │
└────┬───┘└──┬──┘│ity  │       │  └──────┬────────┘└─────────────┘
     │       │   └─────┘       │         │
     ▼       ▼                 ▼         ▼
    ┌──────────────────────────────────────┐
    │               core                   │
    │  models, errors, plugin traits       │
    └──────────────────────────────────────┘

Quick Start

Prerequisites

  • Rust 1.85+ (edition 2024)
  • Node.js 18+ and npm
  • SQLite 3 (bundled via rusqlite, no system install required)

Build & Run

# Clone the repository
git clone https://github.com/user/ai-pipeline.git
cd ai-pipeline

# Build the backend
cargo build --release

# Build the frontend
cd frontend
npm install
npm run build
cd ..

# (Optional) Create a config file — the server runs with sane defaults
cp config.toml.example config.toml   # if available, or create one (see below)

# Run the server
./target/release/aip

The server starts at http://0.0.0.0:8080 by default. The first user registered via POST /api/auth/register is automatically granted the Admin role.

Configuration

AI Pipeline loads configuration from config.toml in the working directory. If the file is missing, all settings fall back to defaults.

[server]
host = "0.0.0.0"
port = 8080

[storage]
data_dir = "data"              # SQLite DB + vsdb data directory

[auth]
jwt_secret = "change-me-in-production"
token_expiry_hours = 24

[github]
token = "ghp_..."              # Personal access token
# app_id = "12345"             # GitHub App authentication (alternative)
# app_private_key = "..."

Security: Never commit config.toml with real credentials. The file is git-ignored by default.

Note: AI tools (Claude Code, Copilot CLI, Gemini CLI) are not configured on the server. Each project provides its own SSH host with pre-installed and pre-authenticated AI CLIs. See the AI Tools Guide.

Development

# Run the backend in debug mode
cargo run -p aip

# Run the frontend dev server (hot-reload)
cd frontend && npm run dev

# Run all Rust tests
cargo test --workspace

# Run Rust lints
cargo clippy --workspace --all-targets

# Run frontend lints
cd frontend && npm run lint

# Run frontend e2e tests (requires Playwright)
cd frontend && npx playwright install && npm run e2e

API Documentation

Full API reference: docs/api-reference.md

Base URL: http://<host>:<port>/api

Key endpoint groups:

Group Prefix Auth Description
System /api/system No Health check
Auth /api/auth Varies Register, login
Projects /api/projects Yes CRUD projects & services
Pipelines /api/pipelines Yes Trigger & monitor pipeline runs
Environments /api/environments Yes Manage deploy environments & targets
AI Tools /api/ai-tools Yes Configure AI tool settings
Design /api/design Yes Manage design links & sync runs
WebSocket /api/ws Yes Real-time event streaming

WebSocket

Connect to ws://<host>:<port>/api/ws with a valid JWT. Subscribe to channels:

  • pipeline:{run_id} — pipeline run progress
  • deployment:{deploy_id} — deployment progress
  • design_sync:{id} — design sync progress
  • logs:global — all system log events

Documentation

Document Description
docs/architecture.md System architecture, crate structure, storage design, plugin system
docs/api-reference.md Complete REST & WebSocket API reference
docs/user-guide.md End-user guide for managing projects and pipelines
docs/deployment-guide.md Production deployment and operations guide
docs/ai-tools-guide.md Configuring and using AI tool integrations
docs/design-sync-guide.md Figma design-to-code synchronization guide
docs/extension-guide.md Writing custom plugins (AI tools, VCS, deploy targets)

Project Structure

ai-pipeline/
├── crates/
│   ├── core/               # Domain models, error types, plugin traits
│   ├── ai-tools/           # AI tool adapters (Claude, Copilot, Gemini)
│   ├── vcs/                # VCS platform integrations (GitHub)
│   ├── deploy/             # Deployment orchestration & rollback
│   ├── design-platform/    # Design platform adapters (Figma)
│   ├── design-to-code/     # AI code generation from design data
│   ├── pipeline-engine/    # Pipeline runtime, scheduler, state machine
│   ├── observability/      # Structured logging, metrics, event streaming
│   └── server/             # Axum HTTP server, routes, auth, config
├── frontend/               # React + Vite + Ant Design dashboard
├── migrations/             # SQLite schema migrations
├── tests/                  # Unit, integration, and e2e tests
├── docs/                   # Project documentation
├── data/                   # Runtime data (SQLite DB, vsdb files)
└── config.toml             # Server configuration (git-ignored)

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines on submitting issues and pull requests.

License

This project is licensed under the MIT License.

About

AI Pipeline

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages