Azure DevOps - получить пользовательский идентификатор задачи - PullRequest
1 голос
/ 30 октября 2019

Я хочу обновить конвейер с помощью Definitions - Update вызова API REST.

Это прекрасно работает, но когда я хочу добавить пользовательскую задачу (Самостоятельное расширение задачи сборки конвейера) Затем я изо всех сил пытаюсь найти правильный идентификатор ссылки на задачу :

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}

Я проверяю registrationId моей пользовательской задачи с установленным Расширения - список вызов API REST. Но это не правильно. (7f1fe94f-b811-4ba1-9d6a-b6c27de758d7)

Я также добавляю пользовательскую задачу вручную в конвейер и считываю правильный идентификатор ссылки на задачу с помощью вызова Definitions - Get REST API. Я мог найти идентификатор в:

$pipeline.process.phases.steps.task.id -> 2c7efb3e-3267-4ac6-addc-86e88a6dab34

enter image description here


Но как я могу прочитать этот идентификатор без добавления пользовательской задачивручную?

Этот идентификатор, очевидно, является динамическим и изменяется каждый раз при установке пользовательской задачи, поэтому должен быть способ получить эту ссылку.

1 Ответ

2 голосов
/ 30 октября 2019

Идентификатор задачи не менялся каждый раз, когда пользовательская задача была установлена, но он существовал в task.json задачи:

{
    "id": "2f159376-f4dk-4311-a49c-392f9d534113",
    "name": "TaskName",
    "friendlyName": "Task Name",

Другой вариант - использовать этот API:

https://dev.azure.com/{organiztion}/_apis/distributedtask/tasks

Вы получите длинный список всех заданий, выполните поиск по заданию и увидите идентификатор.

...