Skip to main content
ClaudeWave
ES, Spanish
Skill1k estrellas del repoactualizado 4d ago

add-azuredevops

This Claude Code skill integrates the Azure DevOps connector into Power Apps code applications, enabling direct API calls to query work items, create bugs, manage pipelines, and perform other Azure DevOps operations. Use this skill when building Power Apps that require Azure DevOps integration and need to establish the connector connection, apply necessary code fixes, and configure the appropriate operations.

Instalar en Claude Code
Copiar
git clone --depth 1 https://github.com/microsoft/power-platform-skills /tmp/add-azuredevops && cp -r /tmp/add-azuredevops/plugins/code-apps/skills/add-azuredevops ~/.claude/skills/add-azuredevops
Después abre una sesión nueva de Claude Code; el skill carga automáticamente.

SKILL.md

**📋 Shared Instructions: [shared-instructions.md](${PLUGIN_ROOT}/shared/shared-instructions.md)** - Cross-cutting concerns.

# Add Azure DevOps

## Workflow

1. Check Memory Bank → 2. Add Connector → 3. Apply HttpRequest Fix → 4. Configure → 5. Build → 6. Update Memory Bank

---

### Step 1: Check Memory Bank

Check for `memory-bank.md` per [shared-instructions.md](${PLUGIN_ROOT}/shared/shared-instructions.md).

### Step 2: Add Connector

**First, find the connection ID** (see [connector-reference.md](${PLUGIN_ROOT}/shared/connector-reference.md)):

Run the `/list-connections` skill. Find the Azure DevOps connection in the output. If none exists, direct the user to create one using the environment-specific Connections URL — construct it from the active environment ID in context (from `power.config.json` or a prior step): `https://make.powerapps.com/environments/<environment-id>/connections` → **+ New connection** → search for the connector → Create.

```bash
pa app add data-source --connector azuredevops -c <connection-id>
```

### Step 3: Apply HttpRequest Fix (Required)

The generated code has a known issue: the `HttpRequest` method uses `parameters` as the parameter name, but the API expects `body`. Rename `parameters` to `body` in these 3 files:

Use the `Edit` tool to rename `parameters` to `body` in each file:

**1. `src/generated/services/AzureDevOpsService.ts`:**
Find the `HttpRequest` method. Rename the parameter and its usage:

```typescript
// BEFORE (generated):
async HttpRequest(parameters: any) {
  const params = { parameters: parameters, ... };

// AFTER (fixed):
async HttpRequest(body: any) {
  const params = { body: body, ... };
```

**2. `.power/appschemas/dataSourceInfo.ts`:**
Find the `visualstudioteamservices` → `HttpRequest` → `parameters` section. Rename the property key:

```typescript
// BEFORE (generated):
HttpRequest: {
  parameters: {
    parameters: { ... }

// AFTER (fixed):
HttpRequest: {
  parameters: {
    body: { ... }
```

**3. `.power/schemas/visualstudioteamservices/visualstudioteamservices.Schema.json`:**
Find the `/{connectionId}/httprequest` → `post` → `parameters` array. Change the `name` field:

```json
// BEFORE (generated):
{ "name": "parameters", "in": "body", ... }

// AFTER (fixed):
{ "name": "body", "in": "body", ... }
```

### Step 4: Configure

Ask the user what Azure DevOps operations they need (query work items, create items, trigger pipelines, etc.).

**HttpRequest** -- make arbitrary ADO REST API calls:

```typescript
await AzureDevOpsService.HttpRequest({
  Uri: "https://dev.azure.com/{org}/{project}/_apis/wit/wiql?api-version=7.2",
  Method: "POST",
  Body: JSON.stringify({
    query:
      "SELECT [System.Id], [System.Title] FROM WorkItems WHERE [System.TeamProject] = @project"
  })
});
```

Docs: [Azure DevOps REST API](https://learn.microsoft.com/en-us/rest/api/azure/devops/?view=azure-devops-rest-7.2)

Use `Grep` to find specific methods in `src/generated/services/AzureDevOpsService.ts` (generated files can be very large -- see [connector-reference.md](${PLUGIN_ROOT}/shared/connector-reference.md#inspecting-large-generated-files)).

### Step 5: Build

```bash
npm run build
```

Fix TypeScript errors before proceeding. Do NOT deploy yet.

### Step 6: Update Memory Bank

Update `memory-bank.md` with: connector added, HttpRequest fix applied, build status.