Generated banner for Azure Devops CLI
Generated logo for Azure Devops CLI

Azure Devops CLI

GitHubOfficialFirst committed by AungMyoKyawDistributed by GitHub

  • Skill
  • Tool integration
  • Cloud and DevOps
  • MIT
  • Low risk

From the author

Manage Azure DevOps resources via CLI including projects, repos, pipelines, builds, pull requests, work items, artifacts, and service endpoints. Use when working with Azure DevOps, az commands, devops automation, CI/CD, or when user mentions Azure DevOps CLI.
— the description by AungMyoKyaw

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

The Azure DevOps CLI extension enables developers and DevOps engineers to interact with Azure DevOps services through the Azure CLI. It provides a comprehensive command set for managing projects, repositories, pull requests, pipelines, work items, and security configurations. By supporting various output formats and advanced JMESPath querying, it allows for efficient data extraction and integration into shell-based automation scripts.

What it does

  • Manage projects, teams, and security permissions.
  • Create, update, and query work items and board configurations.
  • Handle Git repositories, pull requests, and branch policies.
  • Control CI/CD pipelines, builds, releases, and agent pools.
  • Query and filter resource data using JMESPath.
  • Configure default organization and project settings for streamlined workflows.

When to use it

  • Automating repetitive Azure DevOps tasks via shell scripts.
  • Managing board items or pipeline configurations without a browser.
  • Integrating Azure DevOps data into custom reporting or monitoring tools.
  • Performing bulk updates or administrative tasks across multiple projects.

Advantages

  • Enables scriptable, repeatable DevOps workflows.
  • Reduces context switching by staying in the terminal.
  • Supports powerful data filtering and transformation via JMESPath.
  • Flexible output formats including JSON, YAML, and table views.

Usage examples

“How do I list all active work items assigned to me?”
The agent provides the 'az boards query' command with a WIQL string filtering by current user and active state.
“Show me the last 5 successful pipeline runs in table format.”
The agent demonstrates using 'az pipelines runs list' combined with a JMESPath query and '--output table'.
“How can I create a new bug work item from the CLI?”
The agent provides the 'az boards work-item create' command syntax with parameters for title, type, and description.

Install

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/github/azure-devops-cli/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip azure-devops-cli.zip -d .agents/skills

Documentation by AungMyoKyaw

Azure DevOps CLI

Manage Azure DevOps resources using the Azure CLI with the Azure DevOps extension.

CLI Version: 2.81.0 (current as of 2025)

Prerequisites

# Install Azure CLI
brew install azure-cli  # macOS
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash  # Linux

# Install Azure DevOps extension
az extension add --name azure-devops

Authentication

# Login with PAT token
az devops login --organization https://dev.azure.com/{org} --token YOUR_PAT_TOKEN

# Set default organization and project (avoids repeating --org/--project)
# Note: Legacy URL https://{org}.visualstudio.com should be replaced with https://dev.azure.com/{org}
az devops configure --defaults organization=https://dev.azure.com/{org} project={project}

# List current configuration
az devops configure --list

CLI Structure

az devops          # Main DevOps commands
├── admin          # Administration (banner)
├── extension      # Extension management
├── project        # Team projects
├── security       # Security operations
│   ├── group      # Security groups
│   └── permission # Security permissions
├── service-endpoint # Service connections
├── team           # Teams
├── user           # Users
├── wiki           # Wikis
├── configure      # Set defaults
├── invoke         # Invoke REST API
├── login          # Authenticate
└── logout         # Clear credentials

az pipelines       # Azure Pipelines
├── agent          # Agents
├── build          # Builds
├── folder         # Pipeline folders
├── pool           # Agent pools
├── queue          # Agent queues
├── release        # Releases
├── runs           # Pipeline runs
├── variable       # Pipeline variables
└── variable-group # Variable groups

az boards          # Azure Boards
├── area           # Area paths
├── iteration      # Iterations
└── work-item      # Work items

az repos           # Azure Repos
├── import         # Git imports
├── policy         # Branch policies
├── pr             # Pull requests
└── ref            # Git references

az artifacts       # Azure Artifacts
└── universal      # Universal Packages

Reference Files

Read the relevant reference file based on the user's task. Each file contains complete command syntax and examples for its domain.

FileWhen to readCovers
references/repos-and-prs.mdRepos, branches, pull requests, branch policiesRepositories, Import, PRs (create/list/vote/reviewers/policies), Git refs, Branch policies
references/pipelines-and-builds.mdPipelines, builds, releases, artifactsPipelines CRUD, runs, builds, releases, artifacts download/upload
references/boards-and-iterations.mdWork items, sprints, area pathsWork items (WIQL/create/update/relations), Area paths, Iterations, Team iterations
references/variables-and-agents.mdPipeline variables, agent poolsPipeline variables, Variable groups, Pipeline folders, Agent pools/queues
references/org-and-security.mdProjects, teams, users, permissions, wikisProjects, Extensions, Teams, Users, Security groups/permissions, Service endpoints, Wikis, Admin
references/advanced-usage.mdOutput formatting, JMESPath queriesOutput formats, JMESPath queries (basic + advanced), Global args, Common params, Git aliases
references/workflows-and-patterns.mdAutomation scripts, best practices, error handlingCommon workflows, Best practices, Error handling, Scripting patterns, Real-world examples
references/long-comments-on-windows.mdLong --discussion, --description, or --content values failing on WindowsThe cmd.exe 8191 char cap on az.cmd, shell detection, and three verified workarounds (azps.ps1, native --file-path, az devops invoke --in-file)

Files

references/advanced-usage.md

Advanced Usage: Output, Queries & Parameters

Table of Contents

  • Output Formats

  • JMESPath Queries

  • Advanced JMESPath Queries

  • Global Arguments

  • Common Parameters

  • Git Aliases

  • Getting Help


Output Formats

All commands support multiple output formats:

# 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:

# 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
# 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
# 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
# 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
# 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
# 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
# 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 show --id $PARENT_ID --query "[?rel=='System.LinkTypes.Hierarchy-Forward'] | [].{ChildID:url | split('/', @) | [-1]}"

Global Arguments

Available on all commands:

ParameterDescription
--help / -hShow command help
--output / -oOutput format (json, jsonc, none, table, tsv, yaml, yamlc)
--queryJMESPath query string for filtering output
--verboseIncrease logging verbosity
--debugShow all debug logs
--only-show-errorsOnly show errors, suppress warnings
--subscriptionName or ID of subscription
--yes / -ySkip confirmation prompts

Common Parameters

ParameterDescription
--org / --organizationAzure DevOps organization URL (e.g., https://dev.azure.com/{org})
--project / -pProject name or ID
--detectAuto-detect organization from git config
--yes / -ySkip confirmation prompts
--openOpen resource in web browser
--subscriptionAzure subscription (for Azure resources)

Git Aliases

After enabling git aliases:

# Enable Git aliases
az devops configure --use-git-aliases true

# Use Git commands for DevOps operations
git pr create --target-branch main
git pr list
git pr checkout 123

Getting Help

# General help
az devops --help

# Help for specific command group
az pipelines --help
az repos pr --help

# Help for specific command
az repos pr create --help

# Search for examples
az find "az repos pr create"

Requirements and compatibility

Written for: GitHub Copilot

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs network access, Needs a command-line tool

Security

What our scanner noticed· Low risk

  • Instructions that use the network

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

First committed by
GitHub avatar of AungMyoKyawAungMyoKyaw
Publisher
GitHub (Official)
Distributed by
GitHub
Source
github/awesome-copilot · skills/azure-devops-cli · commit 797337f
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced
Contributors
fondoger, AungMyoKyaw, KomalSrinivasan, alexvago

AutoGineer is not affiliated with or endorsed by AungMyoKyaw or GitHub.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download azure-devops-cli.zip