azure-devops
Complete Azure DevOps automation - boards, repos, pipelines, artifacts
Best use case
azure-devops is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Complete Azure DevOps automation - boards, repos, pipelines, artifacts
Teams using azure-devops should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/azure-devops/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How azure-devops Compares
| Feature / Agent | azure-devops | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Complete Azure DevOps automation - boards, repos, pipelines, artifacts
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Azure DevOps Skill Complete Azure DevOps integration covering boards, repositories, pipelines, and artifacts. **Auto-activates when:** User mentions Azure DevOps, ADO, work items, boards, repos, pipelines, artifacts, or Azure DevOps URLs. ## Purpose This skill provides comprehensive guidance for Azure DevOps automation through purpose-built Python CLI tools that handle: ### Work Items (Boards) - Work item creation with HTML-formatted descriptions - Work item updates (state, assignments, fields) - Work item deletion with confirmation - Parent-child relationship linking - WIQL query execution - Work item type and field discovery ### Repositories - Repository listing with details - Pull request creation with reviewers and work items - Branch validation - Clone URL access ### Pipelines - Pipeline listing and execution - Build monitoring and logs - Deployment management ### Artifacts - Package feed management - Package publishing and downloading - Version management ## Quick Start ### 1. Authentication First **ALWAYS start by checking authentication:** ```bash python .claude/scenarios/az-devops-tools/auth_check.py --auto-fix ``` This verifies Azure CLI is installed, you're logged in, org/project are configured, and you have access. See: [@authentication.md] ### 2. Common Operations #### Create Work Item ```bash python .claude/scenarios/az-devops-tools/create_work_item.py \ --type "User Story" \ --title "Implement feature" \ --description @story.md ``` #### Query Work Items ```bash python .claude/scenarios/az-devops-tools/list_work_items.py --query mine ``` #### Create Pull Request ```bash python .claude/scenarios/az-devops-tools/create_pr.py \ --source feature/branch \ --target main \ --title "Add feature" ``` ## Progressive Loading References For detailed guidance on specific operations, see: - [@authentication.md] - Authentication methods (PAT, OAuth, environment variables) - [@work-items.md] - Work item CRUD operations, field updates, state transitions - [@queries.md] - WIQL query patterns, filtering, sorting - [@html-formatting.md] - HTML formatting in work item descriptions/comments - [@repos.md] - Repository operations, pull request workflows - [@pipelines.md] - Pipeline triggers, build monitoring, deployment - [@artifacts.md] - Package management, artifact publishing - [@HOW_TO_CREATE_YOUR_OWN.md] - Template for creating similar integration tools ## Available Tools | Tool | Purpose | When to Use | | --------------------- | --------------------- | ----------------------------------------- | | `auth_check.py` | Verify authentication | Before any operations | | `create_work_item.py` | Create work items | Add User Stories, Tasks, Bugs, etc. | | `update_work_item.py` | Update work items | Change state, assignee, fields | | `delete_work_item.py` | Delete work items | Remove work items (with confirmation) | | `get_work_item.py` | Get work item details | View complete work item info | | `list_work_items.py` | Query work items | Find, filter, and list work items | | `link_parent.py` | Link parent-child | Create Epic → Feature → Story hierarchies | | `query_wiql.py` | Execute WIQL queries | Complex filtering with WIQL | | `format_html.py` | Convert to HTML | Format rich descriptions | | `list_types.py` | Discover types/fields | Explore available options | | `list_repos.py` | List repositories | View all repositories in project | | `create_pr.py` | Create pull request | Submit code for review | ## Common Patterns ### Pattern 1: Create Work Item with Parent ```bash # Create parent work item python .claude/scenarios/az-devops-tools/create_work_item.py \ --type "Epic" \ --title "Q1 Planning Initiative" \ --description @epic_desc.md # Output: Created work item #12345 # Create child and link to parent python .claude/scenarios/az-devops-tools/create_work_item.py \ --type "Feature" \ --title "Authentication System" \ --description @feature_desc.md \ --parent-id 12345 # Output: Created work item #12346 and linked to parent #12345 ``` ### Pattern 2: Query and Update Work Items ```bash # Find your active work items python .claude/scenarios/az-devops-tools/list_work_items.py \ --query mine \ --format ids-only # Update work item state python .claude/scenarios/az-devops-tools/update_work_item.py \ --id 12345 \ --state "Active" \ --comment "Starting work on this" ``` ### Pattern 3: Feature Branch to Pull Request ```bash # List repositories python .claude/scenarios/az-devops-tools/list_repos.py # Create pull request python .claude/scenarios/az-devops-tools/create_pr.py \ --source feature/auth \ --target main \ --title "Add authentication" \ --description @pr_desc.md \ --reviewers "user1@domain.com,user2@domain.com" \ --work-items "12345,12346" ``` ### Pattern 4: Discover Available Types ```bash # List all work item types in your project python .claude/scenarios/az-devops-tools/list_types.py # Show fields for specific type python .claude/scenarios/az-devops-tools/list_types.py \ --type "User Story" \ --fields ``` ## Critical Learnings ### HTML Formatting Required Azure DevOps work item descriptions use HTML, not Markdown or plain text. **The tools handle this automatically:** - `create_work_item.py` converts markdown to HTML by default - Use `--no-html` to disable conversion - Or use `format_html.py` directly for custom formatting See: [@html-formatting.md] ### Two-Step Parent Linking You cannot specify a parent during work item creation via CLI (Azure limitation). **The tools provide two approaches:** **Option A:** Use `--parent-id` flag (recommended): ```bash python .claude/scenarios/az-devops-tools/create_work_item.py \ --type "Task" \ --title "My Task" \ --parent-id 12345 ``` **Option B:** Link separately: ```bash # Step 1: Create TASK_ID=$(python .claude/scenarios/az-devops-tools/create_work_item.py \ --type "Task" \ --title "My Task" \ --json | jq -r '.id') # Step 2: Link python .claude/scenarios/az-devops-tools/link_parent.py \ --child $TASK_ID \ --parent 12345 ``` ### Area Path and Work Item Types - Area path format: `ProjectName\TeamName\SubArea` - Work item types vary by project (standard + custom types) - Use `list_types.py` to discover what's available in your project ## Error Recovery | Error | Tool to Use | Example | | ---------------------- | --------------------------------------- | ----------------------------- | | Authentication failed | `auth_check.py --auto-fix` | Auto-login and configure | | Invalid work item type | `list_types.py` | See available types | | Field validation error | `list_types.py --type "Type" --fields` | See valid fields | | Parent link failed | Check IDs exist, verify hierarchy rules | Epic → Feature → Story → Task | | Branch does not exist | Verify with `git branch -a` | Push branch first | ## Tool Implementation All tools are in `~/.amplihack/.claude/scenarios/az-devops-tools/`: - Standalone Python programs (can run independently) - Importable modules (can use in other scripts) - Comprehensive error handling - Tests in `tests/` directory See: [Tool README](~/.amplihack/.claude/scenarios/az-devops-tools/README.md) ## Philosophy These tools follow amplihack principles: - **Ruthless Simplicity**: Each tool does one thing well - **Zero-BS**: Every function works, no stubs or TODOs - **Reusable**: Importable and composable - **Fail-Fast**: Clear errors with actionable guidance - **Self-Contained**: Standard library + azure CLI wrapper only ## Quick Reference ```bash # Setup (first time) python .claude/scenarios/az-devops-tools/auth_check.py --auto-fix # Create work item python .claude/scenarios/az-devops-tools/create_work_item.py \ --type "User Story" \ --title "Title" \ --description @desc.md # Update work item python .claude/scenarios/az-devops-tools/update_work_item.py \ --id 12345 \ --state "Active" # Query work items python .claude/scenarios/az-devops-tools/list_work_items.py --query mine # Create pull request python .claude/scenarios/az-devops-tools/create_pr.py \ --source feature/branch \ --target main \ --title "Add feature" # Discover types python .claude/scenarios/az-devops-tools/list_types.py ```
Related Skills
azure-storage-file-share-py
Azure Storage File Share SDK for Python. Use for SMB file shares, directories, and file operations in the cloud.
azure-storage-blob-rust
Azure Blob Storage SDK for Rust. Use for uploading, downloading, and managing blobs and containers.
azure-servicebus-py
Azure Service Bus SDK for Python messaging. Use for queues, topics, subscriptions, and enterprise messaging patterns.
azure-servicebus-dotnet
Azure Service Bus SDK for .NET. Enterprise messaging with queues, topics, subscriptions, and sessions.
azure-search-documents-py
Azure AI Search SDK for Python. Use for vector search, hybrid search, semantic ranking, indexing, and skillsets.
azure-search-documents-dotnet
Azure AI Search SDK for .NET (Azure.Search.Documents). Use for building search applications with full-text, vector, semantic, and hybrid search.
azure-resource-manager-durabletask-dotnet
Azure Resource Manager SDK for Durable Task Scheduler in .NET.
azure-prepare
Default entry point for Azure application development EXCEPT cross-cloud migration — use azure-cloud-migrate instead. Analyzes your project and prepares it for Azure deployment by generating infrastructure code (Bicep/Terraform), azure.yaml, and Dockerfiles. WHEN: "create an app", "build a web app", "create API", "create frontend", "create backend", "add a feature", "build a service", "develop a project", "modernize my code", "update my application", "add database", "add authentication", "add caching", "deploy to Azure", "host on Azure", "Azure with terraform", "Azure with azd", "generate azure.yaml", "generate Bicep", "generate Terraform", "create Azure Functions app", "create serverless HTTP API", "create function app", "create event-driven function", "create and deploy to Azure", "create Azure Functions and deploy", "create function app and deploy".
azure-pipelines
Use when validating Azure DevOps pipeline changes for the VS Code build. Covers queueing builds, checking build status, viewing logs, and iterating on pipeline YAML changes without waiting for full CI runs.
azure-pipelines-validator
Comprehensive toolkit for validating, linting, and securing Azure DevOps Pipeline configurations.
azure-pipelines-generator
Comprehensive toolkit for generating best practice Azure DevOps Pipelines following current standards and conventions. Use this skill when creating new Azure Pipelines, implementing CI/CD workflows, or building deployment pipelines.
azure-networking
Configure Azure VNet, NSG, Load Balancer, and network topology.