Power-platform-skills 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.
git clone https://github.com/microsoft/power-platform-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/microsoft/power-platform-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/code-apps/skills/add-azuredevops" ~/.claude/skills/microsoft-power-platform-skills-add-azuredevops && rm -rf "$T"
plugins/code-apps/skills/add-azuredevops/SKILL.md📋 Shared Instructions: shared-instructions.md - Cross-cutting concerns.
Add Azure DevOps
Workflow
- 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.
pwsh -NoProfile -Command "pac code 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.
:
Find the src/generated/services/AzureDevOpsService.ts
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.
:
Find the .power/appschemas/dataSourceInfo.ts
visualstudioteamservices → HttpRequest → parameters section. Rename the property key:
// BEFORE (generated): HttpRequest: { parameters: { parameters: { ... } // AFTER (fixed): HttpRequest: { parameters: { body: { ... }
3.
:
Find the .power/schemas/visualstudioteamservices/visualstudioteamservices.Schema.json
/{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.