azure-devops
Azure DevOps
Manage work items, pipelines, and repos via the Azure DevOps REST API.
Environment Variables
AZDO_ORG_URL- Organization URL (e.g.https://dev.azure.com/yourorg)AZDO_PAT- Personal access tokenAZDO_PROJECT- Default project name (optional)
Auth header
AZDO_AUTH=$(echo -n ":$AZDO_PAT" | base64)
List projects
curl -s -H "Authorization: Basic $(echo -n ":$AZDO_PAT" | base64)" \
"$AZDO_ORG_URL/_apis/projects?api-version=7.1" | jq '.value[] | {name, state}'
Get work item
curl -s -H "Authorization: Basic $(echo -n ":$AZDO_PAT" | base64)" \
"$AZDO_ORG_URL/$AZDO_PROJECT/_apis/wit/workitems/123?api-version=7.1" | jq '{id, title: .fields["System.Title"], state: .fields["System.State"], assignedTo: .fields["System.AssignedTo"].displayName}'
Create work item
curl -s -X POST -H "Authorization: Basic $(echo -n ":$AZDO_PAT" | base64)" \
-H "Content-Type: application/json-patch+json" \
"$AZDO_ORG_URL/$AZDO_PROJECT/_apis/wit/workitems/\$Bug?api-version=7.1" \
-d '[
{"op": "add", "path": "/fields/System.Title", "value": "Login page broken"},
{"op": "add", "path": "/fields/System.Description", "value": "Description here"}
]' | jq '{id, url}'
Query work items (WIQL)
curl -s -X POST -H "Authorization: Basic $(echo -n ":$AZDO_PAT" | base64)" \
-H "Content-Type: application/json" \
"$AZDO_ORG_URL/$AZDO_PROJECT/_apis/wit/wiql?api-version=7.1" \
-d '{"query": "SELECT [System.Id],[System.Title],[System.State] FROM WorkItems WHERE [System.State] = '\''Active'\'' ORDER BY [System.ChangedDate] DESC"}' | jq '.workItems[] | {id, url}'
List pipelines
curl -s -H "Authorization: Basic $(echo -n ":$AZDO_PAT" | base64)" \
"$AZDO_ORG_URL/$AZDO_PROJECT/_apis/pipelines?api-version=7.1" | jq '.value[] | {id, name}'
Run pipeline
curl -s -X POST -H "Authorization: Basic $(echo -n ":$AZDO_PAT" | base64)" \
-H "Content-Type: application/json" \
"$AZDO_ORG_URL/$AZDO_PROJECT/_apis/pipelines/123/runs?api-version=7.1" \
-d '{"resources": {"repositories": {"self": {"refName": "refs/heads/main"}}}}' | jq '{id: .id, state: .state}'
List repos
curl -s -H "Authorization: Basic $(echo -n ":$AZDO_PAT" | base64)" \
"$AZDO_ORG_URL/$AZDO_PROJECT/_apis/git/repositories?api-version=7.1" | jq '.value[] | {name, defaultBranch, webUrl}'
Notes
- Use API version
7.1for latest features. - PATs can be scoped to specific permissions (work items, code, build, etc.).
- Work item type names in URLs must be prefixed with
$(e.g.$Bug,$Task). - Always confirm before creating work items or running pipelines.
More from thinkfleetai/thinkfleet-engine
local-whisper
Local speech-to-text using OpenAI Whisper. Runs fully offline after model download. High quality transcription with multiple model sizes.
149flyio-cli-public
Use the Fly.io flyctl CLI for deploying and operating apps on Fly.io: deploys (local or remote builder), viewing status/logs, SSH/console, secrets/config, scaling, machines, volumes, and Fly Postgres (create/attach/manage databases). Use when asked to deploy to Fly.io, debug fly deploy/build/runtime failures, set up GitHub Actions deploys/previews, or safely manage Fly apps and Postgres.
24kagi-search
Web search using Kagi Search API. Use when you need to search the web for current information, facts, or references. Requires KAGI_API_KEY in the environment.
22feishu-bridge
Connect a Feishu (Lark) bot to ThinkFleet via WebSocket long-connection. No public server, domain, or ngrok required. Use when setting up Feishu/Lark as a messaging channel, troubleshooting the Feishu bridge, or managing the bridge service (start/stop/logs). Covers bot creation on Feishu Open Platform, credential setup, bridge startup, macOS launchd auto-restart, and group chat behavior tuning.
13bambu-local
Control Bambu Lab 3D printers locally via MQTT (no cloud). Supports A1, A1 Mini, P1P, P1S, X1C.
10voice-transcribe
Transcribe audio files using OpenAI's gpt-4o-mini-transcribe model with vocabulary hints and text replacements. Requires uv (https://docs.astral.sh/uv/).
10