Tengo una aplicación .NET C# y me gustaría descargar los últimos artefactos generados por la última compilación de este proyecto público de Azure DevOps:
https://dev.azure.com/LumiaWoA/Boot%20Shim/_build?definitionId=3
¿Cómo interactúa uno con Azure DevOps para descargar los artefactos para tal tarea?
Tengo en mente usar un HttpClient para descargar los artefactos comprimidos usando alguna URL especial.
Necesitaría usar Azure DevOps REST Api para eso. Esta llamada de descanso recupera artefactos de la compilación:
GET https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}/artifacts?artifactName={artifactName}&api-version=5.0esta llamada REST le daría la última versión:
GET https://dev.azure.com/{organization}/{project}/_apis/build/latest/{definition}?branchName={branchName}&api-version=5.0-preview.1Aquí hay un artículo (con algunos ejemplos) que habla sobre cómo se autenticaría en la API. Desde la perspectiva del código, es una solicitud HTTP simple, por lo que debería ser bastante fácil.
Estos son los pasos para descargar los últimos artefactos de la compilación de DevOps mediante la interfaz de usuario de Azure DevOps.
Usando la interfaz de usuario beta a partir del 2019-11-09, los pasos son los siguientes.
En las Pipelines , cuando se selecciona una ejecución exitosa y se profundiza en el Agent job X y se selecciona ese agente, se puede encontrar en la información de registro de ese agente.
En la Job Information del agente, se puede obtener un enlace a la ubicación de descarga donde se pueden descargar los elementos gracias al enlace X artifact produced :
Lanzamientos > Seleccione un lanzamiento
Haga clic en el enlace del artefacto (en azul, por ejemplo: 20191125.1)
La nueva pantalla es el registro. En la parte superior derecha, haga clic en el botón azul [Artefactos].
Elija Soltar, expanda el árbol y haga clic derecho para descargar el archivo que desea (probablemente el zip de la compilación)
Así es como lo hice funcionar usando 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 $hElija su tubería
Selecciona tu carrera.
Ahora busque Publicado. Pinchalo. Si hay algo allí, debería poder descargarlo.