You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何无需额外支持库,用curl.exe或PowerShell查询Azure DevOps(TFS)

无需额外库访问Azure DevOps REST API(curl/PowerShell)

前置准备

先创建Azure DevOps的个人访问令牌(PAT),令牌权限要匹配你调用API的需求(比如读取项目就选「项目和团队」的读取权限)。


使用curl.exe访问

认证逻辑

把PAT按 :<你的PAT> 格式(注意前面的冒号)转成Base64编码,请求时在Header里携带 Authorization: Basic <Base64编码后的字符串>。

示例:查询组织下的项目列表

# 简化写法,curl会自动处理PAT的Base64编码
curl -u :<你的PAT> "https://dev.azure.com/<你的组织名>/_apis/projects?api-version=7.1"

或者显式指定Header的写法:

# 先在终端生成Base64编码(Windows环境可执行:echo -n ":你的PAT" | certutil -encode -f - base64.txt,取结果去掉首尾注释行)
curl -H "Authorization: Basic <Base64编码的PAT>" "https://dev.azure.com/<你的组织名>/_apis/projects?api-version=7.1"

使用PowerShell访问

方法1:通过PSCredential认证

$pat = "<你的PAT>"
$orgName = "<你的组织名>"
$credential = New-Object System.Management.Automation.PSCredential("", (ConvertTo-SecureString $pat -AsPlainText -Force))

Invoke-RestMethod -Uri "https://dev.azure.com/$orgName/_apis/projects?api-version=7.1" -Credential $credential

方法2:直接添加Authorization头

$pat = "<你的PAT>"
$orgName = "<你的组织名>"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$pat"))

Invoke-RestMethod -Uri "https://dev.azure.com/$orgName/_apis/projects?api-version=7.1" -Headers @{Authorization = "Basic $base64AuthInfo"}

示例:获取特定项目的单个工作项

$pat = "<你的PAT>"
$orgName = "<你的组织名>"
$projectName = "<你的项目名>"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$pat"))

Invoke-RestMethod -Uri "https://dev.azure.com/$orgName/$projectName/_apis/wit/workitems/1?api-version=7.1" -Headers @{Authorization = "Basic $base64AuthInfo"}

内容的提问来源于stack exchange,提问作者zumalifeguard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 15:41:15