# Add Azuredevops

> Adds Azure DevOps connector to a Power Apps code app. Use when querying work items, creating bugs, managing pipelines, or making ADO API calls.

- **Type:** Skill
- **Install:** `agentstack add skill-microsoft-power-platform-skills-add-azuredevops`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [microsoft](https://agentstack.voostack.com/s/microsoft)
- **Installs:** 0
- **Category:** [Cloud & Infrastructure](https://agentstack.voostack.com/c/cloud-infrastructure)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [microsoft](https://github.com/microsoft)
- **Source:** https://github.com/microsoft/power-platform-skills/tree/main/plugins/code-apps/skills/add-azuredevops
- **Website:** https://aka.ms/ppskills

## Install

```sh
agentstack add skill-microsoft-power-platform-skills-add-azuredevops
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

**📋 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//connections` → **+ New connection** → search for the connector → Create.

```bash
npx power-apps add-data-source -a azuredevops -c 
```

### 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.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [microsoft](https://github.com/microsoft)
- **Source:** [microsoft/power-platform-skills](https://github.com/microsoft/power-platform-skills)
- **License:** MIT
- **Homepage:** https://aka.ms/ppskills

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-microsoft-power-platform-skills-add-azuredevops
- Seller: https://agentstack.voostack.com/s/microsoft
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
