When users share links (such as visualstudio.com or dev.azure.com) and/or mention Azure DevOps, use the Azure DevOps CLI to interact with work items, pull requests (PRs), repositories, and more.
This skill inherits all available tools. When active, it can use any tool Claude has access to.
You have access to an already signed in version of the Azure CLI with devops access. When users share Azure DevOps links or mention Azure DevOps resources, infer the appropriate action from context before running commands.
Extract parameters from common URL patterns:
https://dev.azure.com/{org}/{project}/_git/{repo}/pullrequest/{prId}https://{org}.visualstudio.com/{project}/_git/{repo}/pullrequest/{prId}https://dev.azure.com/{org}/{project}/_workitems/edit/{workItemId}Infer user intent from context when they share a PR link:
| Context | Likely Action |
|---|---|
| "review", "comments", "feedback" | Get comment threads |
| "what's this PR", "show me" | Show PR details |
| "check out", "work on this" | Checkout PR branch |
| "approve", "complete", "merge" | Update PR status |
| No clear intent | Show PR summary first, ask what they need |
az repos pr show --id {prId} --org {orgUrl}
az repos pr checkout --id {prId}
The CLI lacks a first-class command for threads; use az devops invoke:
az devops invoke --area git --resource pullRequestThreads --route-parameters project={project} repositoryId={repository} pullRequestId={prId} --org {orgUrl} --api-version 7.1
Filter to active/unresolved threads:
... | jq '.value[] | select(.status == "active")'
# approve, approve-with-suggestions, wait-for-author, reject, reset
az repos pr set-vote --id {prId} --vote approve --org {orgUrl}
az repos pr update --id {prId} --status completed --org {orgUrl} # or: abandoned
az repos pr work-item list --id {prId} --org {orgUrl}
az repos pr reviewer add --id {prId} --reviewers {email} --org {orgUrl}
az repos pr reviewer list --id {prId} --org {orgUrl}
az boards work-item show --id {workItemId} --org {orgUrl}
az boards work-item update --id {workItemId} --state "Active" --org {orgUrl}
az boards work-item update --id {workItemId} --assigned-to {email} --org {orgUrl}
az boards work-item create --title "Title" --type "Task" --project {project} --org {orgUrl}
az boards query --wiql "SELECT [System.Id] FROM workitems WHERE [System.AssignedTo] = @Me" --org {orgUrl}
az boards work-item relation add --id {workItemId} --relation-type "Parent" --target-id {targetId} --org {orgUrl}
az devops invoke for REST APIsWhen the CLI lacks a first-class command, use invoke to call any Azure DevOps REST API:
az devops invoke --area {area} --resource {resource} --route-parameters {key}={value} --org {orgUrl} --api-version 7.1
Common areas: git, wit (work item tracking), core