Skip to content

Latest commit

 

History

History
80 lines (57 loc) · 4.7 KB

File metadata and controls

80 lines (57 loc) · 4.7 KB

ci-autopilot

AI-powered CI autopilot worker/runtime - detects GitHub Actions failures and dispatches repairs via a Python agent

CI Python 3.12 License: MIT

Overview

ci-autopilot packages the worker/runtime side of the platform. It monitors GitHub Actions workflows, detects failures, triages them via an issue queue, and dispatches autonomous repairs using a Python agent backed by Codex. It runs on a self-hosted runner and provides the execution path from queued repair task to proposed fix.

The agent (agent/poll_once.py) is a Python 3.12 stdlib-only program that polls the issue queue, picks up queued repair tasks, and dispatches them to the Codex repair pipeline. No external dependencies are required.

Repo boundary

  • autopilot-core is the control plane for org-level scheduling, rollout, and PR governance.
  • ci-autopilot is the worker/runtime implementation for runner execution, queue polling, and repair dispatch.
  • autopilot-demo is the demonstration target used to show the runtime and control plane working together.

Architecture

flowchart LR
    A["GitHub Actions\nfailure detected"] --> B["autopilot-failure-intake\n(intake workflow)"]
    B --> C["Issue queue\n(runner-offline label)"]
    C --> D["agent/poll_once.py\n(Python 3.12)"]
    D --> E["Codex\n(repair dispatch)"]
    E --> F["PR / fix\ncommitted"]
Loading

Core components:

  • autopilot-failure-intake.yml - Intake workflow triggered on workflow_run failure events; creates a queued issue
  • autopilot-create-issue.yml - Creates GitHub issues via actions/github-script when monitored workflows fail
  • fixer.yml - Main CI autopilot; runs agent/poll_once.py on the self-hosted Windows runner
  • agent/poll_once.py - Python 3.12 stdlib agent; polls the issue queue and dispatches repairs
  • runner-smoke-test.yml - Smoke tests the self-hosted runner on demand
  • runner-health.yml - Manual runner health check (dispatch only)

Enterprise proof points

  • Deliberately small runtime surface: Python 3.12 stdlib-only agent for easier audit and rebuild.
  • Clear separation of concerns: issue intake and governance stay in the control plane; repair execution stays on the worker.
  • Self-hosted runner model supports enterprise network boundaries, managed toolchains, and least-privilege token handling.
  • Queue-driven processing creates an auditable handoff between CI failure detection and agent action.

Quick Start

# Prerequisites: Python 3.12, GitHub CLI, GH_TOKEN env var
export GH_TOKEN=<your_token>
python -m agent.poll_once

For full runner registration, service setup, and local development instructions see the Setup Guide wiki page.

Runbook path

  1. Read docs/control-plane.md for the issue-queue contract with autopilot-core.
  2. Use docs/runner-setup.md to provision the worker host.
  3. Use docs/operations.md and docs/troubleshooting.md for day-2 support.

Documentation

Source Description
docs/architecture.md System architecture and design goals
docs/runner-setup.md Runner registration and service setup
docs/operations.md Day-2 operations runbook
docs/security.md Security posture and access model
docs/control-plane.md Failure intake and issue control plane
docs/troubleshooting.md Lightweight troubleshooting guide
GitHub Pages Professional docs landing page

Wiki: Home | Setup Guide | Architecture | Configuration Reference

Ecosystem

Part of the Coding-Autopilot-System ecosystem alongside the adjacent autopilot repos: autopilot-core | autopilot-demo