【发布时间】:2019-10-30 22:01:06
【问题描述】:
我想使用Definitions - Update 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)
我还将自定义任务手动添加到管道中,并使用Definitions - Get REST API 调用读出正确的任务引用ID。我可以在以下位置找到 ID:
$pipeline.process.phases.steps.task.id -> 2c7efb3e-3267-4ac6-addc-86e88a6dab34
但是如何在不手动添加自定义任务的情况下读出这个 id?
这个id显然是动态的,每次安装自定义任务时都会发生变化,所以一定有办法得到这个引用。
【问题讨论】:
-
是来自 Marketplace 的任务还是您自己的任务?
-
这是一个自定义任务,由我自己创建。
-
@ShaykiAbramczyk 感谢 Shayki 的提示。 ID 写在
task.json中。非常感谢你。但是我有办法直接从 Azure DevOps 服务器获取这个 ID 吗?它必须有这些信息,但在哪里?
标签: azure-devops azure-devops-rest-api