Как загрузить последние артефакты сборки из Azure DevOps программным путем?

У меня есть приложение .NET C#, и я хочу загрузить последние артефакты, созданные последней сборкой этого общедоступного проекта Azure DevOps:

https://dev.azure.com/LumiaWoA/Boot%20Shim/_build?definitionId=3

Как можно взаимодействовать с Azure DevOps для загрузки артефактов для такой задачи?

Я имею в виду использовать HttpClient для загрузки заархивированных артефактов с использованием специального URL-адреса.

🤔 А знаете ли вы, что...
C# обеспечивает возможность создания многопоточных приложений с помощью пространства имен System.Threading.


52
44 177
6

Ответы:

Решено

Для этого вам потребуется использовать Azure DevOps REST Api. Этот вызов rest извлекает артефакты из сборки:

GET https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}/artifacts?artifactName = {artifactName}&api-version=5.0

этот вызов REST даст вам последнюю сборку:

GET https://dev.azure.com/{organization}/{project}/_apis/build/latest/{definition}?branchName = {branchName}&api-version=5.0-preview.1

Вот статья (с некоторыми примерами) говорит о том, как вы будете аутентифицироваться в API. С точки зрения кода это простой HTTP-запрос, поэтому он должен быть довольно простым.


Ниже приведены инструкции по загрузке последних артефактов сборки DevOps с помощью пользовательского интерфейса Azure DevOps.

  1. Нажмите на журналы сборки.
  2. Затем нажмите на итоговую опцию сборки.
  3. После шага 2 в верхней правой части пользовательского интерфейса будет видна опция «Артефакты», поэтому нажмите на нее.
  4. Затем выберите drop, чтобы загрузить ZIP-файл с последними артефактами сборки.

Используя бета-версию пользовательского интерфейса по состоянию на 09.11.2019, выполните следующие действия.

  1. Нажмите на завершенную сборку (не на весь конвейер), и вы попадете на вкладку Резюме на странице Строить.
  2. В верхнем поле справа щелкните ссылку под столбцом Артефакты. Это значок коробки с текстом вроде 1 опубликовано. Затем вы попадете на страницу Артефакты.
  3. На странице отображаются все доступные артефакты. Щелкните значок загрузки, чтобы загрузить любой из артефактов.

В Pipelines, когда вы выбираете успешный запуск и переходите к Agent job X и выбираете этого агента, его можно найти в информации журнала этого агента.

В агенте Job Information по ссылке X artifact produced можно получить ссылку на место загрузки, где можно скачать элементы:


Релизы > Выберите релиз

Щелкните ссылку Артефакт (синим цветом, например: 20191125.1).

Новый экран - журнал. В правом верхнем углу нажмите синюю кнопку [Артефакты].

Выберите Drop, разверните дерево и щелкните правой кнопкой мыши, чтобы загрузить нужный файл (возможно, zip-архив сборки)


Вот как я заставил его работать с помощью PowerShell.

$MyPat = '********************************'
$B64Pat = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(":$MyPat"))
$h = @{'Authorization' = 'Basic ' + $B64Pat}
$response = Invoke-WebRequest -Uri "https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}/artifacts?artifactName = {artifactName}&api-version=4.1" -Method 'GET' -Headers $h
$response_json = ($response.Content | ConvertFrom-Json)
$response_artifact = Invoke-WebRequest -Uri $response_json.resource.downloadUrl -Method 'GET' -Headers $h

Выберите свой трубопровод

AzureDevops pipeline selection

Выберите пробежку.

AzureDevops pipeline run

Теперь найдите Опубликовано. Нажмите на нее. Если что-то там есть, вы сможете это скачать.