ADO Pipeline Manager
VS Code extension for managing Azure DevOps pipelines directly from the editor. Monitor runs, approve deployments, inspect Terraform plans, diagnose failures, and trigger pipelines — all without leaving VS Code.
PAT Permissions
Create a Personal Access Token with these minimum permissions:
| Scope |
Access Level |
Purpose |
| Build |
Read & Execute |
View pipelines, runs, timelines, logs, artifacts; cancel runs; update run tags |
| Pipeline |
Read |
List and trigger pipeline definitions |
The User Profile scope is automatically available with any valid PAT and is used to resolve the authenticated user identity.
Setup and Usage
See README-features.md for setup instructions, screenshots, and usage walkthroughs.
Features
Pipeline Runs
- Recent Runs tree view — see your pipeline runs with status, branch, result, and duration at a glance
- Run details — expand a run to see its timeline stages, jobs, tasks, and pending approvals
- Trigger & cancel runs directly from the UI
- Retry runs while preserving the original run's queue-time variables
- Favorite pipelines — starred pipelines display a bright green star icon and sort to the top
- Pipeline filtering — filter pipelines by name or folder
- Status bar — current run status always visible; shows a spinner during failure diagnosis and a bell icon for pending approvals
- Failure diagnosis — automatically detect failed runs and generate an AI-powered fix guide
Approvals
- Pending approvals view — the Recent Runs icon changes to a bell when a run is waiting for approval
- Approval notifications — notifications are shown for both environment-based approvals (
/_apis/pipelines/approvals) and timeline checkpoints such as ManualValidation tasks
- Open in Browser — jump straight to the approval page in Azure DevOps to approve or reject
- AI-generated summary — Copilot reads the full raw
terraform plan output and produces a concise bullet-point summary
- Risk highlighting — destructive changes, replacements, IAM/security modifications flagged with ⚠️
- Resource group cards — parsed resource-action groupings (Resources to Create / Update / Replace / Destroy)
- Per-resource details — counts, stats, and grouped resource change cards with explanations
- Raw Plan Output — full line-numbered, color-coded plan text at the bottom of the webview
- Large plan handling — plans over ~8000 chars are truncated before sending to Copilot; a note is shown in the UI
Custom Prompt
The built-in default prompt lives at src/defaultPrompt/terraform-summary-prompt.md. You can override it with your own markdown file:
"adoPipelineManager.terraformSummaryPromptPath": "${workspaceFolder}/terraform-prompt.md"
Example terraform-prompt.md:
You are a Terraform plan reviewer. A full terraform plan output is provided below.
Summarize in bullet points, in German. Focus only on:
- Destructive changes (replacements, destroys)
- Security group / IAM changes
- Any resources being deleted
Keep it under 4 bullet points.
If the setting is empty or the file doesn't exist, the built-in default prompt is used.
Failure Diagnosis
- Automatic detection — when a Recent Run transitions to
failed, the extension fetches the timeline, extracts error snippets from failed task logs, and calls GitHub Copilot for a fix guide
- HTML fix guide — opens in a webview with color-coded sections: Failures found, Root cause, Fix, and How to verify
- Manual trigger — right-click any completed failed run and choose ADO: Diagnose Failure
- Deduplication — each failed run is diagnosed once per VS Code session; select Ignore in the notification to prevent repeated prompts
- Smart log excerpts — error windows plus the tail of each failed task log are sent to Copilot, capped by
failureDiagnosisMaxLogChars
Custom Prompt
The built-in default prompt lives at src/defaultPrompt/failure-diagnosis-prompt.md. You can override it with your own markdown file:
"adoPipelineManager.failureDiagnosisPromptPath": "${workspaceFolder}/failure-diagnosis-prompt.md"
If the setting is empty or the file doesn't exist, the built-in default prompt is used.
Logs & Artifacts
- View logs — fetch task logs for a run or individual timeline task and display them in the ADO Pipeline Manager output channel
- Download artifacts — download all artifacts for a run as ZIP files to a folder of your choice
Configuration
| Setting |
Default |
Description |
adoPipelineManager.currentUserEmail |
"" |
Optional email address used to filter Recent Runs. If empty, the current ADO identity is looked up. |
adoPipelineManager.pollingIntervalSeconds |
5 |
Interval in seconds between Recent Runs refreshes (minimum 3) |
adoPipelineManager.backgroundPollingIntervalSeconds |
10 |
Interval in seconds between background approval checks (minimum 10) |
adoPipelineManager.enableTerraformSummary |
true |
Enable AI-powered plan summarization via Copilot |
adoPipelineManager.terraformSummaryPromptPath |
"" |
Path to custom prompt .md file for plan summarization (supports ${workspaceFolder}) |
adoPipelineManager.terraformSummaryPollInterval |
10 |
Interval in seconds to check for new plan artifacts |
adoPipelineManager.terraformArtifactName |
terraform.tfplan.show |
Artifact name pattern for plan output |
adoPipelineManager.enableFailureDiagnosis |
true |
Enable automatic diagnosis of failed runs via Copilot |
adoPipelineManager.failureDiagnosisAutoOpen |
false |
Open the diagnosis webview automatically when a run fails. If false, a notification is shown instead. |
adoPipelineManager.failureDiagnosisPromptPath |
"" |
Path to custom prompt .md file for failure diagnosis (supports ${workspaceFolder}) |
adoPipelineManager.failureDiagnosisMaxLogChars |
6000 |
Max characters of failed-task log content sent to Copilot |
Commands
| Command ID |
Title |
Where it appears |
adoPipelineManager.configure |
ADO: Configure Connection |
View title, Command Palette |
adoPipelineManager.refresh |
ADO: Refresh |
View title, Command Palette, status bar click |
adoPipelineManager.filterPipelines |
ADO: Filter Pipelines |
View title |
adoPipelineManager.clearPipelineFilter |
ADO: Clear Pipeline Filter |
View title |
adoPipelineManager.triggerPipeline |
ADO: Trigger Pipeline |
Pipeline inline/context menu |
adoPipelineManager.toggleFavorite |
ADO: Toggle Favorite |
Pipeline inline/context menu |
adoPipelineManager.openInBrowser |
ADO: Open in Browser |
Pipeline/run context menu |
adoPipelineManager.retryRun |
ADO: Retry Run |
Run context menu |
adoPipelineManager.cancelRun |
ADO: Cancel Run |
Run context menu (in-progress only) |
adoPipelineManager.loadMoreRuns |
ADO: Load More Runs |
Built into tree node |
adoPipelineManager.findRunById |
ADO: Find Run by ID |
Recent Runs view title |
adoPipelineManager.downloadArtifacts |
ADO: Download Artifacts |
Recent Runs context menu |
adoPipelineManager.showPlanSummary |
ADO: Show Plan Summary |
Click Terraform summary tree item |
adoPipelineManager.summarizePlan |
ADO: Summarize Terraform Plan |
Recent Runs context menu |
adoPipelineManager.diagnoseFailure |
ADO: Diagnose Failure |
Run context menu |
adoPipelineManager.showFailureDiagnosis |
ADO: Show Failure Diagnosis |
Click diagnosis tree item |