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.

Provider: Microsoft Power Platform APIs Path in repo: plugins/code-apps/skills/add-azuredevops/SKILL.md

Skill body

📋 Shared Instructions: 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.

Step 2: Add Connector

First, find the connection ID (see 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.

npx power-apps add-data-source -a 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:

// 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:

// 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:

// 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:

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

Use Grep to find specific methods in src/generated/services/AzureDevOpsService.ts (generated files can be very large – see connector-reference.md).

Step 5: Build

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.

Skill frontmatter

user-invocable: true allowed-tools: Read, Edit, Write, Grep, Glob, Bash, LSP, TaskCreate, TaskUpdate, TaskList, TaskGet, AskUserQuestion, Skill model: sonnet

Work with this as data

Every skill here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for agent skills

4 MCP tools reach this
  • find_skillsBrowse and filter every skill in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This skill
curl "https://apis.io/api/v1/skills/add-azuredevops"
All agent skills
curl "https://apis.io/api/v1/skills?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.