ADO Pipeline Comparator — Azure DevOps Pipeline Comparison Tool
Compare Azure DevOps Build and Release pipelines side-by-side across multiple ADO organizations. Connect via PAT (AES-256 encrypted), cache locally, compare stages, jobs, steps, variables, and triggers. Export to Excel and PDF. Docker or Windows EXE — no .NET required. Open Source MIT.
ADO Pipeline Comparator: Side-by-Side Azure DevOps Pipeline Comparison Across Multiple Organizations
Managing pipelines across multiple Azure DevOps organizations is complex. Teams maintaining the same deployment logic across several ADO tenants — or auditing pipeline consistency across projects — have no native tool to compare them. Engineers open tabs, manually inspect stages and steps, copy configurations into spreadsheets, and try to spot differences by eye. This is slow, error-prone, and doesn't scale.
The Challenge
Organizations running multiple Azure DevOps tenants — or teams responsible for pipeline governance — have no native ADO feature to compare pipeline definitions side-by-side. Spotting a missing step, a misconfigured variable, or a different trigger condition requires manual inspection across browser tabs. ADO Pipeline Comparator replaces this with a structured comparison UI and exportable reports.
The Solution: ADO Pipeline Comparator
ADO Pipeline Comparator is a standalone web application that connects to multiple Azure DevOps organizations simultaneously, caches their pipeline definitions locally in SQLite, and lets you select any 2 or more pipelines for structured side-by-side comparison. Collapsible comparison sections (Stages, Jobs, Steps, Variables, Triggers) cover both Build and Release pipeline types. Results export to Excel or PDF.
How It Works
- Connect — Add ADO organizations via PAT token. PATs are encrypted with AES-256 before storage — never saved in plaintext
- Load — Click Refresh to fetch pipeline definitions from all connected organizations into the local SQLite cache
- Browse — Use the advanced Pipelines table: search, filter, sort, and group by Organization → Project → Type
- Select — Check 2 or more pipelines using row checkboxes
- Compare — Click Compare to open the side-by-side view with collapsible sections and visual diff indicators
- Export — Download the full comparison as Excel (.xlsx) or PDF for audit records and stakeholder sharing
ADO Org 1 ↘
ADO Org 2 → [Cache → ADO Pipeline Comparator] → Select Pipelines → Side-by-Side Diff → Export
ADO Org 3 ↗
Key Capabilities
Multi-Org Connections
Connect to any number of Azure DevOps organizations simultaneously. PAT tokens stored AES-256 encrypted — never in plaintext. Test connection before saving. Manage organization visibility per site.
Side-by-Side Comparison
Compare stages, jobs, steps, variables, and triggers across 2+ pipelines in collapsible sections. Differences are visually highlighted — spot missing steps, changed variables, or different triggers instantly.
Advanced Pipeline Table
Full-featured data table: sorting, filtering, column grouping (Org → Project → Type), column reordering and visibility toggle, full-text search. Select pipelines for comparison with checkboxes.
Export: Excel & PDF
Export the full comparison to Excel (.xlsx) for further analysis or to PDF for sharing with stakeholders, audit records, and compliance documentation.
Local Pipeline Cache
Pipeline definitions are cached in a local SQLite database. Refresh on demand: all organizations, a single org, or a single pipeline. Offline comparison is possible after initial load.
Docker or Windows EXE
Run as a Docker container on any OS (Linux, macOS, Windows) or as a self-contained Windows EXE. No .NET installation required on the target machine. One command to start.
Supported Pipeline Types
| Type | Description | Comparison Sections |
|---|---|---|
| Build (YAML) | YAML-based pipeline definitions | Stages, Jobs, Steps, Variables, Triggers |
| Build (Classic) | Classic non-YAML build definitions | Stages, Jobs, Steps, Variables, Triggers |
| Release (Classic) | Classic release definitions with stages and environments | Stages, Jobs, Steps, Variables, Triggers |
🖥️ Application Pages
| Page | URL | Description |
|---|---|---|
| Dashboard | / |
Overview of connected organizations and pipeline stats |
| ADO Sites | /sites |
Manage ADO organization connections (URL + PAT, test connection) |
| Organizations | /organizations |
Browse and toggle ADO projects per site — show/hide from comparison |
| Pipelines | /pipelines |
Full pipeline table: search, filter, group, refresh cache, select for comparison |
| Compare | /compare |
Side-by-side comparison view with collapsible sections and Excel/PDF export |
💼 Use Cases
⚙️ For DevOps Engineers
Quickly audit pipeline consistency across environments (dev, staging, production) or across customer tenants. Find a missing step, a wrong variable, or a trigger that's out of sync — without opening multiple browser tabs.
📋 For Release Managers
Verify that release pipelines across all environments are correctly configured before a deployment. Export comparison to PDF for sign-off and approval workflows. Maintain a documented audit trail of pipeline state.
🏗️ For Technical Delivery Managers
Enforce pipeline governance standards across multiple teams and projects. Use exported Excel reports for project reviews. Quickly onboard new ADO organizations and compare their pipelines against a reference standard.
🔍 For Audit & Compliance
Generate PDF reports of pipeline configuration comparisons for compliance records. Document the state of CI/CD pipelines at a point in time. PAT tokens stored encrypted — meeting security requirements for credential handling.
🏢 For ISVs & Multi-Tenant Deployments
ISVs maintaining identical pipelines across customer ADO organizations can quickly spot where configurations have drifted. Compare a customer's pipeline against the reference template to identify deviations before they cause issues.
🔄 For Pipeline Migrations
Migrating pipelines from one ADO organization to another? Use the comparator to verify the migrated pipeline matches the source definition step-by-step. Export a diff report to document what was migrated and what changed.
🔐 Security
Encrypted Credentials
- ✅ AES-256 PAT Encryption: Personal Access Tokens are stored AES-256 encrypted in the local SQLite database — never in plaintext
-
✅
Encryption Key via Env Var: The AES key is provided through the
ENCRYPTION_KEYenvironment variable — not hardcoded or stored in config files - ✅ Local-Only Storage: All data stays in a local SQLite file — no cloud sync, no external data transmission
- ✅ Read-Only ADO Access: Only requires PAT with Read access to Pipelines — minimal permissions principle
⚡ Quick Start
Docker — Recommended
Option 1 — Docker run (single command):
docker run -d --name ado-pipeline-comparator \
-p 5000:8080 \
-v ado-data:/app/data \
-e ENCRYPTION_KEY=$(openssl rand -base64 32) \
vglu/ado-pipeline-comparator:latest
Option 2 — Docker Compose:
echo "ENCRYPTION_KEY=$(openssl rand -base64 32)" > .env
docker compose up -d
Open in browser:
http://localhost:5000
First steps:
- • Go to ADO Sites → Add Site — enter your ADO organization URL and a PAT with Read access to Pipelines
- • Click Test Connection to verify, then Save
- • Go to Pipelines → click Refresh All to load pipeline definitions
- • Select 2+ pipelines with checkboxes → click Compare
💻 Windows (Self-Contained EXE)
No Docker? Download the latest -win-x64.zip from GitHub Releases, extract, and run start.cmd. No .NET installation required — the runtime is embedded.
🛠️ Technical Stack
Core Technologies
- 🔷 Blazor Server + MudBlazor 7.x — interactive UI (Material Design)
- ⚙️ ASP.NET Core 8 (.NET 8 LTS)
- 🗄️ SQLite + EF Core 8 — local pipeline cache
- 🔗 Azure DevOps .NET Client Libraries — official Microsoft ADO SDK
Additional Libraries
- 🔐 AES-256 encryption for PAT token storage
- 📊 ClosedXML — Excel (.xlsx) export
- 📄 QuestPDF — PDF generation
- 🐳 Docker + Docker Compose support
🔧 Configuration
Configure via environment variables (Docker) or appsettings.json (development):
| Variable | Required | Description |
|---|---|---|
ENCRYPTION_KEY |
Yes | AES-256 key for encrypting PAT tokens (min 16 chars, 32+ recommended) |
DB_PATH |
No | Full path to SQLite file inside container (default: /app/data/data.db) |
ASPNETCORE_URLS |
No | Bind address (default: http://0.0.0.0:8080) |
Generate a secure key: openssl rand -base64 32 (Linux/macOS) or PowerShell: [Convert]::ToBase64String([Security.Cryptography.RandomNumberGenerator]::GetBytes(32))
💡 Why This Matters
Azure DevOps is the backbone of CI/CD for thousands of Microsoft-ecosystem teams. But as organizations grow — multiple ADO tenants, multiple projects, multiple teams — pipelines inevitably drift. A step gets added to one pipeline but not another. A variable is updated in staging but forgotten in production. A trigger condition is different between customer environments.
Without a dedicated comparison tool, this drift is invisible until something breaks.
ADO Pipeline Comparator gives you visibility into pipeline configuration differences before they become incidents:
- Consistency check — verify all environment pipelines match the reference configuration
- Migration validation — confirm a migrated pipeline matches the source definition
- Governance reporting — export to Excel or PDF for project reviews and compliance
- Multi-tenant management — monitor pipeline state across all customer organizations from one tool
❓ Frequently Asked Questions
Can I compare pipelines from different Azure DevOps organizations?
What pipeline types are supported — YAML, Classic Build, Classic Release?
Are PAT tokens stored securely?
ENCRYPTION_KEY environment variable and is not stored anywhere in the application. Only Read access to Pipelines is required — minimal permissions.
How do I export comparison results to Excel or PDF?
Does it work without Docker? What are the requirements?
start.cmd. For Docker, the container runs on any OS (Linux, macOS, Windows) and includes everything needed.
How many pipelines or organizations can I connect?
Is pipeline data sent to any external service?
📞 Contact & Support
For questions, feature requests, or contributions:
- GitHub: github.com/vglu/ADOPipelineComparator — issues, PRs, and discussions
- Docker Hub: hub.docker.com/r/vglu/ado-pipeline-comparator
- Email: vhlu@sims-service.com
Open Source — MIT License
ADO Pipeline Comparator is free, open-source software by SIMS tech. Source code, issues, and contributions: github.com/vglu/ADOPipelineComparator.
🔗 Resources
GitHub Repository
Explore the complete source code, documentation, and latest releases on GitHub.
View on GitHub