Как создать статус запроса VSTS из успешного выпуска?

У нас есть приложение типа хранилища данных, поэтому простой проверки недостаточно для проверки запроса на удаление. У нас есть конвейер выпуска, который автоматически запускает выпуск в дымовую среду. Если это развертывание прошло успешно, запрос на получение может быть завершен.

Похоже, что API-интерфейс статуса запроса на вытягивание идеально подходит для этого. Однако я не могу понять, как получить pullRequestId из релиза.

В определении сборки есть переменная $(System.PullRequest.PullRequestId), но не в определении выпуска.

В настоящее время я тестирую хакерское решение - на этапе сборки, чтобы записать новый файл в каталог артефактов с $(System.PullRequest.PullRequestId) в нем. Это тогда доступно для выпуска. Надеюсь, есть более простой способ.

1 ответ

Решение

Похоже, что сборка инициируется PR-проверкой, а выпуск - артефактами сборки. Затем вы можете получить идентификатор запроса извлечения из предопределенной переменной$(Release.Artifacts.vs2017.SourceBranch),

Поскольку сборка запускается для проверки PR, исходный формат ветки будет таким:

refs/pull/{PullRequestId}/merge

Во время выпуска вы можете получить ветку $(Release.Artifacts.vs2017.SourceBranch), Затем разбить строку по / и вы получите идентификатор запроса на получение. Ниже приведен пример (переменная $prid для идентификатора запроса извлечения):

$t="$(Release.Artifacts.vs2017.SourceBranch)"
$pr=$t -split '/'
$prid=$pr[2]
echo "the pull request id is $prid"
Другие вопросы по тегам