keywords: cdevents · sdlc · cicd · observability · devops
A service & CLI to collect SDLC/CI/CD events from any source and dispatch them as CDEvents.
Sources
- Push (inbound): HTTP webhook, HTTP SSE, Kafka, NATS
- Pull (polling): File system, S3,
HTTPpolling (any REST/JSON API —Jenkins,Jira, custom web APIs, …)
Sinks: HTTP webhook · HTTP SSE · File system · Kafka · NATS · PostgreSQL · ClickHouse
Parsers: JSON · JSONL · CSV · XML · YAML · TAP · text / text_line
Transformations: VRL (Vector Remap Language) — reshape, filter, split, enrich events before dispatch
Three CLI modes: connect (long-running server) · send (one-shot or wrap a command) · transform (batch offline)
- Capture CI/CD pipeline events from GitHub Actions, GitLab CI, Jenkins → normalized
CDEvents - Wrap test commands — emit
testsuiterunstarted/finished events with JUnit/TAP/SARIF results - Poll REST APIs (Jenkins, Jira, any HTTP endpoint) and forward changes as
CDEvents - Bridge message streams — consume Kafka/NATS topics, re-publish as
CDEventstoPostgreSQLorClickHouse - Observe deployments & artifacts — track environment changes and artifact publications
- Feed CDviz dashboards with normalized SDLC telemetry
- Pre-built binaries for Linux and macOS → GitHub Releases
- Docker image →
ghcr.io/cdviz-dev/cdviz-collector - Helm chart for Kubernetes
- Cargo →
cargo install cdviz-collector - Mise →
mise install "github:cdviz-dev/cdviz-collector"
See the Installation Guide.
See the Quick Start Guide for a 5-minute walkthrough.
Pipeline: sources → in-memory queue → multiple sinks (fan-out).
TOML files with environment variable overrides:
- Example: examples/assets/cdviz-collector.toml
- Base config: src/assets/cdviz-collector.base.toml
- Env override pattern:
CDVIZ_COLLECTOR__SECTION__KEY__VALUE
See the Configuration Guide.
Long-running server connecting sources to sinks.
cdviz-collector connect --config cdviz-collector.tomlSee connect docs.
Send JSON directly to a sink, or wrap a command to emit lifecycle CDEvents automatically.
# Send raw JSON
cdviz-collector send --url https://api.example.com/webhook --data '{"test": "value"}'
# Wrap a test run — emits testsuiterun started + finished CDEvents with JUnit results
cdviz-collector send --run testsuiterun-junit -- pytest --junitxml=report.xml
# Wrap any task — emits taskrun started + finished CDEvents
cdviz-collector send --run taskrun -- ./deploy.sh--run captures exit code and output artifacts, then emits lifecycle CDEvents (started → finished). Built-in run types: testsuiterun-junit, testsuiterun-tap, taskrun.
See send docs.
Offline transformation of local files using configured VRL transformers.
cdviz-collector transform --input ./input --output ./output --transformer-refs github_eventsSee transform docs.
For all options: cdviz-collector --help or cdviz-collector <command> --help.
| Project | Role |
|---|---|
| CDviz | SDLC observability dashboard — consumes CDEvents produced by this collector |
| send-cdevents | GitHub Action wrapping cdviz-collector send |
| CDEvents spec | CloudEvents-based open standard for SDLC events |
| VRL | Transformation language used by transformers |
Install the agent skill for help configuring pipelines, writing VRL transformers, mapping CDEvent types, and debugging. Works with Claude Code, GitHub Copilot, Cursor, and other supported agents.
npx skills add cdviz-dev/cdviz-collectorIn Claude Code, invoke with /cdviz-collector.
Uses mise for task management:
mise install # Setup environment
mise run build # Build project
mise run test # Run tests
mise run lint # Run linting
mise run ci # Full CI pipelineSee CONTRIBUTING.md for guidelines.
Apache Software License 2.0 (ASL-2.0). Commercial support: https://cdviz.dev.
- Built-in scripts (this repo): Apache-2.0
- User-provided scripts (loaded at runtime): any license
See LICENSING.md for exceptions.
Contributions welcome — see Contributing Guide and CLA.
