
Azure Devops Cli
Query and manage Azure DevOps pipelines and runs from the terminal with structured `az` output, JMESPath filters, and scripting-friendly formats.
Install
npx skills add https://github.com/github/awesome-copilot --skill azure-devops-cliWhat is this skill?
- Documents seven output modes: table, json, jsonc, yaml, yamlc, tsv, and none
- JMESPath examples for filter, field projection, contains, chaining, slice, and top-N queries
- Covers global arguments, common parameters, git aliases, and command help patterns
- Targets `az pipelines` and `az pipelines runs` style workflows for scripted DevOps
- Pairs human-readable tables with machine-readable JSON for agent and shell automation
Adoption & trust: 10.9k installs on skills.sh; 34.6k GitHub stars; 2/3 security scanners passed (skills.sh audits).
Recommended Skills
Azure Kubernetesmicrosoft/azure-skills
Github Actions Docsxixu-me/skills
Deploy To Vercelvercel-labs/agent-skills
Vercel Cli With Tokensvercel-labs/agent-skills
Turborepovercel/turborepo
Docker Expertsickn33/antigravity-awesome-skills
Journey fit
Primary fit
Pipeline listing, run inspection, and release automation sit in the Ship phase where CI/CD and launch prep are finalized. Launch subphase covers shipping through automated pipelines and pre-release operational checks—not one-off app coding.
Common Questions / FAQ
Is Azure Devops Cli safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Azure Devops Cli
# Advanced Usage: Output, Queries & Parameters ## Table of Contents - [Output Formats](#output-formats) - [JMESPath Queries](#jmespath-queries) - [Advanced JMESPath Queries](#advanced-jmespath-queries) - [Global Arguments](#global-arguments) - [Common Parameters](#common-parameters) - [Git Aliases](#git-aliases) - [Getting Help](#getting-help) --- ## Output Formats All commands support multiple output formats: ```bash # Table format (human-readable) az pipelines list --output table # JSON format (default, machine-readable) az pipelines list --output json # JSONC (colored JSON) az pipelines list --output jsonc # YAML format az pipelines list --output yaml # YAMLC (colored YAML) az pipelines list --output yamlc # TSV format (tab-separated values) az pipelines list --output tsv # None (no output) az pipelines list --output none ``` ## JMESPath Queries Filter and transform output: ```bash # Filter by name az pipelines list --query "[?name=='myPipeline']" # Get specific fields az pipelines list --query "[].{Name:name, ID:id}" # Chain queries az pipelines list --query "[?name.contains('CI')].{Name:name, ID:id}" --output table # Get first result az pipelines list --query "[0]" # Get top N az pipelines list --query "[0:5]" ``` ## Advanced JMESPath Queries ### Filtering and Sorting ```bash # Filter by multiple conditions az pipelines list --query "[?name.contains('CI') && enabled==true]" # Filter by status and result az pipelines runs list --query "[?status=='completed' && result=='succeeded']" # Sort by date (descending) az pipelines runs list --query "sort_by([?status=='completed'], &finishTime | reverse(@))" # Get top N items after filtering az pipelines runs list --query "[?result=='succeeded'] | [0:5]" ``` ### Nested Queries ```bash # Extract nested properties az pipelines show --id $PIPELINE_ID --query "{Name:name, Repo:repository.{Name:name, Type:type}, Folder:folder}" # Query build details az pipelines build show --id $BUILD_ID --query "{ID:id, Number:buildNumber, Status:status, Result:result, Requested:requestedFor.displayName}" ``` ### Complex Filtering ```bash # Find pipelines with specific YAML path az pipelines list --query "[?process.type.name=='yaml' && process.yamlFilename=='azure-pipelines.yml']" # Find PRs from specific reviewer az repos pr list --query "[?contains(reviewers[?displayName=='John Doe'].displayName, 'John Doe')]" # Find work items with specific iteration and state az boards work-item show --id $WI_ID --query "{Title:fields['System.Title'], State:fields['System.State'], Iteration:fields['System.IterationPath']}" ``` ### Aggregation ```bash # Count items by status az pipelines runs list --query "groupBy([?status=='completed'], &[result]) | {Succeeded: [?key=='succeeded'][0].count, Failed: [?key=='failed'][0].count}" # Get unique reviewers az repos pr list --query "unique_by(reviewers[], &displayName)" # Sum values az pipelines runs list --query "[?result=='succeeded'] | [].{Duration:duration} | [0].Duration" ``` ### Conditional Transformation ```bash # Format dates az pipelines runs list --query "[].{ID:id, Date:createdDate, Formatted:createdDate | format_datetime(@, 'yyyy-MM-dd HH:mm')}" # Conditional output az pipelines list --query "[].{Name:name, Status:(enabled ? 'Enabled' : 'Disabled')}" # Extract with defaults az pipelines show --id $PIPELINE_ID --query "{Name:name, Folder:folder || 'Root', Description:description || 'No description'}" ``` ### Complex Workflows ```bash # Find longest running builds az pipelines build list --query "sort_by([?result=='succeeded'], &queueTime) | reverse(@) | [0:3].{ID:id, Number:buildNumber, Duration:duration}" # Get PR statistics per reviewer az repos pr list --query "groupBy([], &reviewers[].displayName) | [].{Reviewer:@.key, Count:length(@)}" # Find work items with multiple child items az boards work-item relation list --id $PARENT_ID --query "[?rel=='System.LinkTypes.Hierarchy-Forward'] | [].{ChildID:url | split('/', @) |