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.
- π’ 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
- β 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
go install github.com/plexusone/pipelineconductor/cmd/pipelineconductor@latestOr build from source:
git clone https://github.com/plexusone/pipelineconductor.git
cd pipelineconductor
go build -o pipelineconductor ./cmd/pipelineconductor- 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/.githubScan 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 jsonCheck 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.htmlCreate ~/.pipelineconductor.yaml or .pipelineconductor.yaml:
github_token: ${GITHUB_TOKEN}
orgs:
- myorg
- otherorg
profile: default
verbose: trueUse PipelineConductor in your CI/CD pipeline:
- name: Check Compliance
uses: plexusone/[email protected]
with:
ref-repo: 'plexusone/.github'
orgs: 'myorg'
format: 'markdown'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 |
Full documentation is available at plexusone.github.io/pipelineconductor
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PipelineConductor CLI β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β ββββββββββββββββ ββββββββββββββββ βββββββββββββββββββββββββ β
β β Collectors β β Policy β β Compliance β β
β β - GitHub API β β Engine β β - Reference Matcher β β
β β - Local FS β β - Cedar β β - Workflow Generator β β
β ββββββββββββββββ ββββββββββββββββ βββββββββββββββββββββββββ β
β β β
β βββββββββ΄βββββββββ β
β β pkg/model β β
β ββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
MIT License - see LICENSE for details.