Azure DevOps 是一个通过 Azure DevOps REST API 管理工作的技能,可用于操作工作项、流水线和代码仓库。
用途
该技能面向需要以程序化或命令行方式访问 Azure DevOps 的场景,例如查询与创建缺陷、查看流水线状态、触发流水线运行、浏览项目与仓库信息等。
主要能力
技能提供以下能力:
- 列出项目:调用项目接口,返回项目名称与状态。
- 获取工作项:根据工作项 ID 读取标题、状态、指派人等字段。
- 创建工作项:以 JSON Patch 格式提交标题与描述等字段,创建指定类型的工作项。
- 查询工作项:使用 WIQL 语句按条件(如状态为 Active)筛选并按修改时间排序。
- 列出流水线:获取项目下的流水线列表,包含 ID 与名称。
- 运行流水线:触发指定流水线运行,可指定分支引用。
- 列出仓库:获取代码仓库列表,包含名称、默认分支与 Web 地址。
使用方式
使用前需配置环境变量:
- AZDO_ORG_URL:组织 URL,例如 https://dev.azure.com/yourorg
- AZDO_PAT:个人访问令牌
- AZDO_PROJECT:默认项目名(可选)
认证头使用 Basic 认证,形式为对 ":$AZDO_PAT" 进行 base64 编码:
AZDO_AUTH=$(echo -n ":$AZDO_PAT" | base64)
以下为各操作示例(保持原样):
列出项目:
curl -s -H "Authorization: Basic $(echo -n ":$AZDO_PAT" | base64)"
"$AZDO_ORG_URL/_apis/projects?api-version=7.1" | jq '.value[] | {name, state}'
获取工作项:
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}'
创建工作项:
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}'
使用 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}'
列出流水线:
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}'
运行流水线:
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}'
列出仓库:
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}'
适用场景
- 在脚本或自动化流程中批量查询、创建工作项。
- 通过 WIQL 按状态、时间等条件筛选工作项。
- 查看项目与仓库信息,触发流水线运行。
限制与注意事项
- 建议使用 API 版本 7.1 以获得最新功能。
- PAT 可限定到具体权限范围(工作项、代码、构建等)。
- URL 中的工作项类型名称必须加 $ 前缀(例如 $Bug、$Task)。
- 在创建工作项或运行流水线之前应先进行确认。
- 资料中未提供具体收费、价格或平台限制信息。