我有一个.NET C#应用程序,我想下载此公共Azure DevOps项目的最新版本生成的最新工件:
https://dev.azure.com/LumiaWoA/Boot%20Shim/_build?definitionId=3
很抱歉,因为我不知道任何有效的代码。问题就是这样。如何与Azure DevOps交互以执行此类任务?
我想到要使用HttpClient通过一些特殊的URL下载压缩后的工件,但是没有时间考虑。
答案 0 :(得分:5)
在Pipelines
中,当选择成功运行并向下钻取到Agent job X
并选择该代理时,可以在该代理的日志信息中找到它。
在代理Job Information
中,由于有了X artifact produced
链接,人们可以链接到可以下载项目的下载位置:
答案 1 :(得分:3)
以下是使用Azure DevOps UI下载DevOps构建的最新工件的步骤。
使用自2019年11月9日起的beta用户界面,步骤如下。
希望它对您有用。
答案 2 :(得分:2)
您需要为此使用Azure DevOps REST Api。该剩余调用从构建中检索工件:
GET https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}/artifacts?artifactName={artifactName}&api-version=5.0-preview.5
此REST调用将为您提供最新版本:
GET https://dev.azure.com/{organization}/{project}/_apis/build/latest/{definition}?branchName={branchName}&api-version=5.0-preview.1
Here's an article (with some samples)讨论如何对API进行身份验证。从代码角度来看,它是一个简单的HTTP请求,因此应该相当容易。
答案 3 :(得分:2)
这就是我使用 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
答案 4 :(得分:1)
答案 5 :(得分:0)