Skip to content
Back to skills

Azure Devops Queries

ASecurity

Usar cuando se necesitan consultas WIQL, actualización de work items o datos de sprint en Azure DevOps.

  • 50 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 27, 2026
ai-agentsgobashvueazureapidevops

Works with

  • cli
  • api

Security analysis

A100/100

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

Scanned September 28, 2026

npx -y skills add gonzalezpazmonica/savia --skill azure-devops-queries --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Azure Devops Queries?

Add the live security badge to your README. It updates with every re-scan.

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

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

Download with Pro
SKILL.md
---
layer: peripheral
name: azure-devops-queries
description: "Usar cuando se necesitan consultas WIQL, actualización de work items o datos de sprint en Azure DevOps."
metadata:
  # --- metadata.savia.* (SE-333) ---
  savia.agent: azure-devops-operator
  savia.maturity: beta
  savia.category: devops
  savia.context: fork
  savia.context_cost: medium
  savia.priority: high
  savia.summary: "Operaciones CRUD con Azure DevOps: queries WIQL, work items, sprint status, capacity. Autenticacion via PAT o az CLI. Input: proyecto + query. Output: datos estructurados."
  savia.tags: "azure-devops, wiql, work-items, api"
---

# Skill: azure-devops-queries

> Skill transversal. Léela SIEMPRE antes de cualquier operación con Azure DevOps.

## Constantes de esta skill

```bash
# Leer siempre desde el entorno (configuradas en .claude/.env y CLAUDE.md raíz)
ORG_URL="${AZURE_DEVOPS_ORG_URL}"          # https://dev.azure.com/MI-ORGANIZACION
ORG_NAME="${AZURE_DEVOPS_ORG_NAME}"        # MI-ORGANIZACION
PAT_FILE="${AZURE_DEVOPS_PAT_FILE}"        # $HOME/.azure/devops-pat
API_VERSION="${AZURE_DEVOPS_API_VERSION}"  # 7.1
```

---

## 1. Autenticación

### Opción A — Azure CLI (preferida)
```bash
az devops configure --defaults organization=$ORG_URL project=$PROJECT_NAME
export AZURE_DEVOPS_EXT_PAT=$(cat $PAT_FILE)
az devops project list --output table
```

### Opción B — REST API directa con curl
```bash
PAT=$(cat $PAT_FILE)
B64_PAT=$(echo -n ":$PAT" | base64)
curl -H "Authorization: Basic $B64_PAT" \
     -H "Content-Type: application/json" \
     "$ORG_URL/$PROJECT/_apis/..."
```

---

## 2. Regla Crítica: Filtrar SIEMPRE por IterationPath

> ⚠️ SIEMPRE incluir filtro `[System.IterationPath] UNDER @CurrentIteration` en las queries WIQL, salvo que se pida explícitamente una query cross-sprint.

Sin este filtro, las queries devuelven TODOS los work items del proyecto desde el inicio, lo que satura el contexto y degrada la calidad de las respuestas.

---

## 3. Queries WIQL Fundamentales

> Detalle: @references/wiql-queries.md

Cinco queries básicas para la mayoría de casos:
1. Items del sprint actual con horas
2. Bugs activos por severidad
3. Items por persona (carga actual)
4. PBIs para sprint planning
5. Items completados en el sprint

**Ejecutar con CLI:**
```bash
az boards query --wiql "SELECT..." --project "$PROJECT_NAME" --output json | jq '.workItems[].id'
```

---

## 4. Operaciones CLI Frecuentes

```bash
# Listar sprints del equipo
az boards iteration team list --project "$PROJECT_NAME" --team "$TEAM_NAME" --output table

# Obtener work item por ID
az boards work-item show --id XXXX --output json

# Actualizar horas
az boards work-item update --id XXXX \
  --fields "Microsoft.VSTS.Scheduling.CompletedWork=8"
```

---

## 5. REST API Directa — Endpoints Clave

```bash
BASE="$ORG_URL/$PROJECT/_apis"
BASE_TEAM="$ORG_URL/$PROJECT/$TEAM/_apis"

# Capacidades, días off, board, iteración actual
GET $BASE_TEAM/work/teamsettings/iterations/{iterationId}/capacities?api-version=$API_VERSION
GET $BASE_TEAM/work/teamsettings/iterations/{iterationId}/teamdaysoff?api-version=$API_VERSION
GET $ORG_URL/$PROJECT/_odata/v4.0-preview/WorkItemSnapshot?\$filter=...
GET $BASE_TEAM/work/teamsettings/iterations?\$timeframe=current&api-version=$API_VERSION
```

---

## 6. Campos WIQL — Referencia Rápida

> Detalle: @references/wiql-fields.md

Campos principales: `System.Id`, `System.Title`, `System.State`, `System.AssignedTo`, `System.WorkItemType`, `System.IterationPath`, `Microsoft.VSTS.Scheduling.StoryPoints`, `Microsoft.VSTS.Scheduling.RemainingWork`, `Microsoft.VSTS.Common.Activity`, `Microsoft.VSTS.Common.Priority`, `Microsoft.VSTS.Common.Severity`

---

## 7. Errores Comunes y Soluciones

| Error | Solución |
|-------|----------|
| `TF400813: The user is not authorized` | Regenerar PAT con scopes correctos |
| `VS403501: The query returned too many results` | Añadir filtro UNDER @CurrentIteration |
| `TF26027: Iteration not found` | Verificar con `az boards iteration team list` |
| `400 Bad Request en capacities API` | Usar team ID en lugar de nombre |
| Resultados vacíos en @CurrentIteration | Configurar sprint activo en AzDevOps |

---

## Referencias

→ Patrones WIQL: `references/wiql-patterns.md`
→ Campos detallados: `references/wiql-fields.md`
→ Analytics OData: `references/odata-patterns.md`

Files in this skill

  • DOMAIN.md1.7 KB
  • SKILL.md4.3 KB
  • references/wiql-fields.md1.9 KB
  • references/wiql-patterns.md5.1 KB
  • references/wiql-queries.md2.5 KB

Attribution

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

Loading comments…