Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Azure Devops

ASecurity

Covers Azure DevOps Services and Server: Azure Pipelines (YAML and classic), Azure Repos, Azure Boards, Azure Artifacts, service connections, variable groups, environments, and deployment gates. WHEN: \"Azure DevOps\", \"Azure Pipelines\", \"azure-pipelines.yml\", \"ADO\", \"Azure Boards\", \"Azure Repos\", \"Azure Artifacts\", \"service connection\", \"variable group\", \"YAML pipeline\", \"classic pipeline\".

4 stars
0 votes
0 copies
0 views
Added 9/24/2026
devopsnodedockerkubernetesawsazuredebugginggitapidevopssecurity

Works with

api

Security Analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned 9/24/2026

$npx -y skills add chrishuffman5/domain-expert --skill azure-devops --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Azure Devops?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Azure Devops
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/chrishuffman5-azure-devops/badge)](https://www.skillsdirectory.com/skills/chrishuffman5-azure-devops)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: azure-devops
description: "Covers Azure DevOps Services and Server: Azure Pipelines (YAML and classic), Azure Repos, Azure Boards, Azure Artifacts, service connections, variable groups, environments, and deployment gates. WHEN: \"Azure DevOps\", \"Azure Pipelines\", \"azure-pipelines.yml\", \"ADO\", \"Azure Boards\", \"Azure Repos\", \"Azure Artifacts\", \"service connection\", \"variable group\", \"YAML pipeline\", \"classic pipeline\"."
license: MIT
---

# Azure DevOps Expert

This skill covers Azure DevOps — both Azure DevOps Services (cloud) and Azure DevOps Server (on-premises). Azure DevOps is Microsoft's integrated DevOps platform providing Boards, Repos, Pipelines, Test Plans, and Artifacts. Configuration is primarily via `azure-pipelines.yml` for YAML pipelines.

## How to Approach Tasks

1. **Classify** the request:
   - **Troubleshooting** -- Load `references/diagnostics.md` for pipeline failures, agent issues, service connection errors
   - **Architecture** -- Load `references/architecture.md` for pipeline internals, agent pools, service connections, YAML schema
   - **Best practices** -- Load `references/best-practices.md` for pipeline design, security, templates, and multi-stage deployments

2. **Load context** -- Read the relevant reference file.

3. **Analyze** -- Apply Azure DevOps-specific reasoning. Consider YAML vs classic pipelines, agent pool type, service connection method.

4. **Recommend** -- Provide `azure-pipelines.yml` examples with explanations.

5. **Verify** -- Suggest validation steps (pipeline validation UI, test runs, deployment approvals).

## Core Concepts

### YAML Pipeline Structure

```yaml
# azure-pipelines.yml
trigger:
  branches:
    include:
      - main
  paths:
    exclude:
      - docs/**

pool:
  vmImage: 'ubuntu-latest'

variables:
  - group: production-vars    # Variable group
  - name: buildConfiguration
    value: 'Release'

stages:
  - stage: Build
    jobs:
      - job: BuildJob
        steps:
          - task: NodeTool@0
            inputs:
              versionSpec: '22.x'
          - script: |
              npm ci
              npm run build
            displayName: 'Build application'
          - publish: $(System.DefaultWorkingDirectory)/dist
            artifact: webapp

  - stage: Deploy
    dependsOn: Build
    condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
    jobs:
      - deployment: DeployProd
        environment: production
        strategy:
          runOnce:
            deploy:
              steps:
                - download: current
                  artifact: webapp
                - task: AzureWebApp@1
                  inputs:
                    appName: 'myapp'
                    package: '$(Pipeline.Workspace)/webapp'
```

### Key Concepts

| Concept | Description |
|---|---|
| **Trigger** | When the pipeline runs (push, PR, schedule, manual) |
| **Pool** | Where the pipeline runs (Microsoft-hosted or self-hosted agents) |
| **Stage** | Major division of the pipeline (Build, Test, Deploy) |
| **Job** | A unit of work that runs on a single agent |
| **Deployment Job** | Special job type with environment tracking and deployment strategies |
| **Step** | Individual task, script, or checkout |
| **Task** | Pre-built action from the Marketplace (e.g., `AzureWebApp@1`) |
| **Variable Group** | Shared variables across pipelines (linked to Azure Key Vault) |
| **Service Connection** | Authentication to external services (Azure, AWS, Docker, GitHub) |
| **Environment** | Deployment target with approvals, gates, and history |

### Agent Pools

| Pool Type | Description | Use Case |
|---|---|---|
| **Microsoft-hosted** | Managed VMs, fresh for each job | Default for most workloads |
| **Self-hosted** | Your infrastructure | Private network, custom tools, compliance |
| **VMSS agents** | Azure VM Scale Set auto-scaling | Cost-effective self-hosted at scale |
| **Container agents** | Docker or K8s-based | Lightweight, fast provisioning |

### Triggers

```yaml
# CI trigger (push)
trigger:
  branches:
    include: [main, release/*]
    exclude: [feature/experimental]
  paths:
    include: [src/**]
  tags:
    include: [v*]

# PR trigger
pr:
  branches:
    include: [main]
  paths:
    include: [src/**]

# Scheduled trigger
schedules:
  - cron: '0 2 * * *'
    displayName: 'Nightly build'
    branches:
      include: [main]
    always: false    # Only if code changed

# Manual trigger (no trigger section or use pipeline UI)
trigger: none
```

## Templates and Reuse

### Template Types

```yaml
# templates/build-template.yml
parameters:
  - name: nodeVersion
    type: string
    default: '22'
  - name: buildCommand
    type: string
    default: 'npm run build'

steps:
  - task: NodeTool@0
    inputs:
      versionSpec: '${{ parameters.nodeVersion }}'
  - script: npm ci
    displayName: 'Install dependencies'
  - script: ${{ parameters.buildCommand }}
    displayName: 'Build'
```

```yaml
# azure-pipelines.yml (consuming the template)
stages:
  - stage: Build
    jobs:
      - job: Build
        steps:
          - template: templates/build-template.yml
            parameters:
              nodeVersion: '22'
              buildCommand: 'npm run build:prod'
```

### Template Levels

| Level | What It Templates | Example |
|---|---|---|
| **Step** | Individual steps within a job | Build steps, test steps |
| **Job** | Entire job definition | Build job, test matrix |
| **Stage** | Entire stage with multiple jobs | Deploy stage with approvals |
| **Pipeline** | Full pipeline (extends keyword) | Organization-standard pipeline |

```yaml
# Extend from a template (full pipeline)
resources:
  repositories:
    - repository: templates
      type: git
      name: MyOrg/pipeline-templates

extends:
  template: standard-pipeline.yml@templates
  parameters:
    buildSteps:
      - script: npm run build
```

## Deployment Strategies

```yaml
# Rolling deployment
strategy:
  rolling:
    maxParallel: 2
    deploy:
      steps:
        - script: deploy.sh

# Canary deployment
strategy:
  canary:
    increments: [10, 20, 50]
    deploy:
      steps:
        - script: deploy.sh
    on:
      success:
        steps:
          - script: verify.sh
      failure:
        steps:
          - script: rollback.sh

# RunOnce (simple)
strategy:
  runOnce:
    deploy:
      steps:
        - script: deploy.sh
```

## Environments and Approvals

```yaml
# Pipeline references the environment
- deployment: DeployProd
  environment: production    # Must be configured in Azure DevOps

# Approvals and checks configured in Azure DevOps UI:
# - Manual approval (required reviewers)
# - Business hours gate
# - Azure Monitor alerts gate
# - REST API check
# - Required template
# - Branch control
```

## Service Connections

| Type | Auth Method | Use Case |
|---|---|---|
| **Azure Resource Manager** | Service principal, managed identity, workload identity federation | Deploy to Azure |
| **Docker Registry** | Username/password, service principal | Push/pull container images |
| **GitHub** | PAT, OAuth, GitHub App | Access GitHub repos |
| **Kubernetes** | Kubeconfig, service account | Deploy to K8s |
| **SSH** | Private key | Deploy to Linux servers |
| **Generic** | Username/password, token | Custom integrations |

**Best practice**: Use workload identity federation (OIDC) for Azure service connections — no secrets to manage.

## Reference Files

- `references/architecture.md` — Pipeline processing, agent architecture, YAML schema details, variable scoping, resource management
- `references/best-practices.md` — Template design, security hardening, multi-stage patterns, variable management, migration from classic to YAML
- `references/diagnostics.md` — Pipeline debugging, agent connectivity, service connection errors, template resolution issues, permission problems

Attribution

chrishuffman5chrishuffman5
View sourceSee grades on GitHubMore from chrishuffman5 →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Terraform Module Library

Build reusable Terraform modules for AWS, Azure, and GCP infrastructure following infrastructure-as-code best practices. Use when creating infrastructure modules, standardizing cloud provisioning, or implementing reusable IaC components.

401991 votes

sematext-otel

Wire a service's OpenTelemetry output to Sematext Cloud. Walks through region, App-type, instrumentation flow (managed OTLP endpoint vs Sematext Agent), and signal selection (traces/metrics/logs), then produces the exact env-var block and points at a runnable reference example in this repo. Invoke when instrumenting a new app for Sematext.

01 votes

Deployment Patterns

Deployment workflows, CI/CD pipeline patterns, Docker containerization, health checks, rollback strategies, and production readiness checklists for web applications. Use when setting up deployment infrastructure or planning releases.

2699140 votes

Babysit

Watch a pull request or review cycle until it is ready to merge. Use when asked to babysit, monitor, or keep checking PR comments, reviews, and CI until all actionable issues are resolved.

971540 votes

V7 Roster

Interact with the Paperclip control plane API for task coordination and governance. Use when checking assignments, updating issue status, posting comments, delegating work, managing routines, or calling Paperclip API endpoints.

953190 votes
View all in devops →