azure-devops
Original:🇺🇸 English
Translated
Manage Azure DevOps (VSTS) projects, work items, and saved queries using the orbit CLI. Use this skill whenever the user asks about Azure DevOps work items, boards, queries, WIQL, bugs, tasks, user stories, sprints, iterations, or project management on Azure DevOps / VSTS. Trigger on phrases like 'list work items', 'show bugs', 'run query', 'create a bug', 'update work item', 'ADO bugs', 'VSTS query', 'Azure DevOps tasks', 'what's assigned to me', 'list projects', 'saved queries', 'work item 12345', or any Azure DevOps-related task — even casual references like 'check the board', 'what bugs are open', 'show me the Fusion backlog', 'ADO status', 'query results', or mentions of WIQL. The orbit CLI alias is `ado`.
2installs
Sourcejorgemuza/orbit
Added on
NPX Install
npx skill4agent add jorgemuza/orbit azure-devopsTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Azure DevOps with orbit CLI
Manage Azure DevOps (VSTS) projects, work items, and saved queries from the command line. Supports both modern () and legacy () instances using PAT-based basic auth.
dev.azure.com*.visualstudio.comPrerequisites
- CLI installed — if
orbitfails, install with:which orbit- macOS/Linux (Homebrew):
brew install jorgemuza/tap/orbit - macOS/Linux (script):
curl -sSfL https://raw.githubusercontent.com/jorgemuza/orbit/main/install.sh | sh
- macOS/Linux (Homebrew):
- A profile with an service configured in
azure-devops~/.config/orbit/config.yaml - A Personal Access Token (PAT) with appropriate scopes (Work Items Read/Write, Project Read)
- Auth method: with your email as username and the PAT as password
basic
Configuration
yaml
profiles:
myprofile:
services:
- name: azure-devops
type: azure-devops
base_url: https://myorg.visualstudio.com # or https://dev.azure.com/myorg
proxy: none # bypass profile-level proxy if needed
auth:
method: basic
username: me@company.com
password: "MY_PAT_HERE" # supports op:// references
options:
default_project: MyProject # optional — avoids --project on every callQuick Reference
All commands follow the pattern:
orbit -p <profile> ado <command> [flags]All commands support and for structured output.
-o json-o yamlCommand Groups
| Group | Alias | Description |
|---|---|---|
| List projects in the organization | |
| | View, list, create, update work items |
| Run and list saved queries | |
| Verify connectivity and show authenticated user |
Core Workflows
Verifying Connection
bash
orbit -p myprofile ado versionListing Projects
bash
orbit -p myprofile ado project list
orbit -p myprofile ado project list -o jsonWork Items
bash
# View a single work item
orbit -p myprofile ado wi view 12345
orbit -p myprofile ado wi view 12345 -o json
# List work items with filters (builds WIQL automatically)
orbit -p myprofile ado wi list --project Fusion --type Bug --state New
orbit -p myprofile ado wi list --project Fusion --type "User Story" --state Active
orbit -p myprofile ado wi list --project Fusion --assigned-to "me@company.com"
orbit -p myprofile ado wi list --project Fusion --max-results 100
# Raw WIQL query
orbit -p myprofile ado wi list --project Fusion --wiql "SELECT [System.Id], [System.Title] FROM WorkItems WHERE [System.State] = 'Active' ORDER BY [System.CreatedDate] DESC"
# Create a work item
orbit -p myprofile ado wi create --project Fusion --type Bug \
--field "System.Title=Login page broken" \
--field "System.Description=Steps to reproduce..."
# Update a work item (any field)
orbit -p myprofile ado wi update 12345 --field "System.State=Active"
orbit -p myprofile ado wi update 12345 --field "System.AssignedTo=someone@company.com"
orbit -p myprofile ado wi update 12345 \
--field "System.State=Resolved" \
--field "Microsoft.VSTS.Common.ResolvedReason=Fixed"Saved Queries
bash
# Run a saved query by its UUID
orbit -p myprofile ado query run a670954b-e739-47ca-a09a-acc10f623123 --project Fusion
# List saved queries and folders
orbit -p myprofile ado query list --project Fusion
orbit -p myprofile ado query list --project Fusion --depth 3Common Field Names
Azure DevOps uses fully-qualified field names. The most common:
| Field | Description |
|---|---|
| Work item title |
| State (New, Active, Resolved, Closed) |
| Type (Bug, Task, User Story, Epic, Feature) |
| Assigned user (email or display name) |
| HTML description |
| Area path (e.g. |
| Iteration/sprint path |
| Semicolon-separated tags |
| Priority (1-4) |
| Severity (1-4) |
| Why it was resolved |
WIQL (Work Item Query Language)
WIQL is Microsoft's query language for work items, similar to SQL:
sql
SELECT [System.Id], [System.Title], [System.State]
FROM WorkItems
WHERE [System.TeamProject] = 'Fusion'
AND [System.WorkItemType] = 'Bug'
AND [System.State] <> 'Closed'
AND [System.AssignedTo] = @Me
ORDER BY [System.CreatedDate] DESCKey differences from Jira JQL:
- Field names use brackets:
[System.Title] - String values use single quotes:
'Active' - Current user:
@Me - Not equal:
<> - Table: (always)
FROM WorkItems
Important Notes
- PAT auth: Azure DevOps uses the PAT as the password in basic auth. The username is your email.
- API version: All requests use (latest stable).
api-version=7.1 - JSON Patch: Create/update use format internally — the CLI handles this; just pass
application/json-patch+json.--field Key=Value - default_project: Set in to avoid
options.default_projecton every command.--project - Proxy bypass: If your profile has a proxy for VPN services but Azure DevOps is on the public internet, set on the service to bypass.
proxy: none - 1Password integration: PAT in config can use and is resolved at runtime via
op://vault/item/field.orbit auth