繁体   English   中英

如何使用 AzureDevOps 管道和 PowerShell 从 Azure Repos git 下载文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM