![](/img/trans.png)
[英]Trying to download a file from an Azure DevOps Git repo using Powershell
[英]How to download file from Azure Repos git using AzureDevOps pipelines && PowerShell
我是 powershell 的新手,无法成功执行我的 powershell 脚本。
我的存储库中有一些 .zip,我需要下载它:
我使用 Azure DevOps 和 powershell 脚本来实现它:
- task: PowerShell@2
displayName: Get .zip
inputs:
targetType: 'inline'
script: |
$filePath= '$(Build.ArtifactStagingDirectory)'
$token = "tokenFromUserSettings"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f "",$token)))
$url = "https://dev.azure.com/devopstry2305/_git/2305first_try?path=/TempTest.zip&download=true&api-version=5.0"
$result = Invoke-RestMethod -Uri $url -Method Get -ContentType "application/text" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} | Out-File $filePath
但我得到这个错误:
我必须使用私有存储库并使用个人访问令牌。 我遵循了本指南https://gmusumeci.medium.com/how-to-download-files-from-azure-devops-repos-from-a-powershell-script-51b11d2aa7d5但可能没有考虑到所有细节. 我还在 Stack 上查看了一些关于它的问题,但不理解这些示例。
我不知道'$filePath'是什么。它是存储文件的地方吗? $url - 在我的示例中是否正确?
如果你能纠正我的错误或给我另一种解决我的任务的方法,那就太好了。 谢谢你。
只要 zip 包含在您拥有管道的存储库中,就应该在签出源代码时自动下载。 如果您尚未定义不同的结帐路径,则此 zip 应位于$(Build.SourcesDirectory)
内。 如果您需要下载不同的存储库 zip,则需要采用另一种方法。
因此,您可以使用 powershell 列出该文件夹的内容并验证其存在。
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
# Write your PowerShell commands here.
ls $(Build.SourcesDirectory)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.