mirror of
https://github.com/github/awesome-copilot.git
synced 2026-03-13 04:35:12 +00:00
Merge pull request #841 from fondoger/fondoger/ado-skill-update
Split azure-devops-cli SKILL.md into samller files
This commit is contained in:
197
skills/azure-devops-cli/references/advanced-usage.md
Normal file
197
skills/azure-devops-cli/references/advanced-usage.md
Normal file
@@ -0,0 +1,197 @@
|
||||
# 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('/', @) | [-1]}"
|
||||
```
|
||||
|
||||
## Global Arguments
|
||||
|
||||
Available on all commands:
|
||||
|
||||
| Parameter | Description |
|
||||
|---|---|
|
||||
| `--help` / `-h` | Show command help |
|
||||
| `--output` / `-o` | Output format (json, jsonc, none, table, tsv, yaml, yamlc) |
|
||||
| `--query` | JMESPath query string for filtering output |
|
||||
| `--verbose` | Increase logging verbosity |
|
||||
| `--debug` | Show all debug logs |
|
||||
| `--only-show-errors` | Only show errors, suppress warnings |
|
||||
| `--subscription` | Name or ID of subscription |
|
||||
| `--yes` / `-y` | Skip confirmation prompts |
|
||||
|
||||
## Common Parameters
|
||||
|
||||
| Parameter | Description |
|
||||
|---|---|
|
||||
| `--org` / `--organization` | Azure DevOps organization URL (e.g., `https://dev.azure.com/{org}`) |
|
||||
| `--project` / `-p` | Project name or ID |
|
||||
| `--detect` | Auto-detect organization from git config |
|
||||
| `--yes` / `-y` | Skip confirmation prompts |
|
||||
| `--open` | Open resource in web browser |
|
||||
| `--subscription` | Azure subscription (for Azure resources) |
|
||||
|
||||
## Git Aliases
|
||||
|
||||
After enabling git aliases:
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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"
|
||||
```
|
||||
Reference in New Issue
Block a user