SuperAPI AI 工具集

azure-devops

部署与运维

查看项目

更新于 10-16 06:57

技能介绍

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)。
  • 在创建工作项或运行流水线之前应先进行确认。
  • 资料中未提供具体收费、价格或平台限制信息。