azure-devops - Azure DevOps - 获取自定义任务参考 ID
问题描述
我想使用定义更新REST API 调用来更新管道。
这很好,但是当我想添加一个自定义任务(自制构建管道任务扩展)时,我努力寻找正确的任务参考 id:
Invoke-RestMethod : {"$id":"1","innerException":null,"message":"The pipeline is not valid. A task is missing. The pipeline references a task called '7f1fe94f-b811-4ba1-9d6a-b6c27de758d7'. This
usually indicates the task isn't installed, and you may be able to install it from the Marketplace: https://marketplace.visualstudio.com. (Task version 1.*, job 'Job_1', step ''.),Job Job_1: Step
has an invalid task definition reference. A valid task definition reference must specify either an ID or a name and a version specification with a major version
specified.","typeName":"Microsoft.TeamFoundation.DistributedTask.Pipelines.PipelineValidationException,
Microsoft.TeamFoundation.DistributedTask.WebApi","typeKey":"PipelineValidationException","errorCode":0,"eventId":3000}
我使用Installed Extensions - List REST API 调用检查了registrationId
我的自定义任务。但这不是正确的。( )7f1fe94f-b811-4ba1-9d6a-b6c27de758d7
我还将自定义任务手动添加到管道中,并使用定义 - 获取REST API 调用读出正确的任务引用 ID 。我可以在以下位置找到 id:
$pipeline.process.phases.steps.task.id -> 2c7efb3e-3267-4ac6-addc-86e88a6dab34
但是如何在不手动添加自定义任务的情况下读出这个 id?
这个 id 显然是动态的,并且每次安装自定义任务时都会更改,因此必须有一种方法来获取此引用。
解决方案
每次安装自定义任务时任务ID都没有改变,但他存在于task.json
任务中:
{
"id": "2f159376-f4dk-4311-a49c-392f9d534113",
"name": "TaskName",
"friendlyName": "Task Name",
另一种选择是使用这个 api:
https://dev.azure.com/{organiztion}/_apis/distributedtask/tasks
您将获得所有任务的长列表,搜索您的任务,您将看到 ID。
推荐阅读
- python - NameError:名称“统一”未定义
- python - CTC:空白必须在标签范围内
- php - 拉拉维尔 | 三个表之间的多对多关系 - 保存两个数组中的数据
- codeigniter - 如何使用 CodeIgniter 在主页中动态获取/查看图像?
- python - 从列表中构建唯一且随机的子集
- javascript - 如何使用 Javascript 在 Microsoft Edge 浏览器中获取客户端 IP 地址?
- python - 为什么这个 python 生成器会这样?
- ios - 快速删除子视图后如何调整滚动视图的大小?
- vb.net - 像 OpenFileDialog 一样使用 TextBox 作为路径
- python - groupby后比较数据框中的两行并执行操作