PipelineConductor

Orchestrate and harmonize multi-repo CI/CD pipelines with policy-driven automation.
PipelineConductor is a tool for managing CI/CD pipeline consistency across hundreds of repositories. It scans repositories, evaluates them against Cedar policies, generates compliance reports, and can automatically remediate violations.
Features
Core
- π’ Multi-org scanning: Scan repositories across multiple GitHub organizations
- π Policy-as-code: Define CI/CD policies using Cedar
- βοΈ Profile system: Named configurations for different project types (default, modern, legacy)
- π Compliance reports: Generate JSON, SARIF, Markdown, CSV, and HTML reports
Compliance Checking (v0.2.0)
- β
Reference repo matching: Check workflows against a reference repository
- π Local filesystem scanning: Scan repositories without GitHub API
- π€ GitHub Action: Reusable action for CI/CD integration
- π§ Automated remediation: Generate missing workflows from templates
- π Dashboard generation: Dashforge integration for visual compliance dashboards
Installation
go install github.com/plexusone/pipelineconductor/cmd/pipelineconductor@latest
Or build from source:
git clone https://github.com/plexusone/pipelineconductor.git
cd pipelineconductor
go build -o pipelineconductor ./cmd/pipelineconductor
Quick Start
- Set your GitHub token:
export GITHUB_TOKEN=ghp_your_token_here
- Scan your organization for policy compliance:
pipelineconductor scan --orgs myorg --output report.json
- Check workflow compliance against a reference repository:
pipelineconductor check --orgs myorg --ref-repo plexusone/.github
Usage
Scan Command
Scan repositories for policy compliance:
# Basic scan
pipelineconductor scan --orgs myorg
# Multiple organizations
pipelineconductor scan --orgs org1,org2,org3
# Filter by language
pipelineconductor scan --orgs myorg --languages Go,Python
# Output to file
pipelineconductor scan --orgs myorg --output report.json --format json
Check Command
Check workflow compliance against a reference repository:
# Check organization repos against reference
pipelineconductor check --orgs myorg --ref-repo plexusone/.github
# Check with strict mode (require exact reusable workflow matches)
pipelineconductor check --orgs myorg --ref-repo plexusone/.github --strict
# Check local repositories
pipelineconductor check --local ~/projects --ref-repo plexusone/.github
# Output as HTML report
pipelineconductor check --orgs myorg --ref-repo plexusone/.github -f html -o report.html
Configuration File
Create ~/.pipelineconductor.yaml or .pipelineconductor.yaml:
github_token: ${GITHUB_TOKEN}
orgs:
- myorg
- otherorg
profile: default
verbose: true
GitHub Action
Use PipelineConductor in your CI/CD pipeline:
- name: Check Compliance
uses: plexusone/[email protected]
with:
ref-repo: 'plexusone/.github'
orgs: 'myorg'
format: 'markdown'
Profiles
PipelineConductor uses profiles to define expected CI/CD configurations:
| Profile |
Go Versions |
Platforms |
Use Case |
default |
1.24, 1.25 |
Linux, macOS, Windows |
Standard projects |
modern |
1.25 |
Linux, macOS |
Latest features |
legacy |
1.12 |
Linux |
Older projects |
Documentation
Full documentation is available at plexusone.github.io/pipelineconductor
Architecture
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PipelineConductor CLI β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β ββββββββββββββββ ββββββββββββββββ βββββββββββββββββββββββββ β
β β Collectors β β Policy β β Compliance β β
β β - GitHub API β β Engine β β - Reference Matcher β β
β β - Local FS β β - Cedar β β - Workflow Generator β β
β ββββββββββββββββ ββββββββββββββββ βββββββββββββββββββββββββ β
β β β
β βββββββββ΄βββββββββ β
β β pkg/model β β
β ββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
License
MIT License - see LICENSE for details.