gpt4 book ai didi

git - 尝试使用 Powershell 从 Azure DevOps Git 存储库下载文件

转载 作者:行者123 更新时间:2023-12-05 04:50:26 27 4
gpt4 key购买 nike

所以我在 Azure DevOps 中有一个 Git 存储库,其 URL 如下

https://[$server]/tfs/[$company]/[$project]/_git/[$repoName]

我可以通过附加类似这样的内容来访问该存储库中的各个文件:

?path=/[$folder]/[$fileName]

我正在尝试使用 Powershell 将特定文件从此存储库下载到我计算机上的相应位置和文件名,如下所示:

$sourcePath = "https://[$server]/tfs/[$company]/[$project]/_git/[$repoName]?path=/[$folder]/[$fileName]&download=true"
$filePath = "C:\Documents\[$folder]\[$fileName]"
Invoke-RestMethod -Uri $sourcePath -Method Get -Headers @{Authorization=("Basic {0}" -f [$AuthInfo])} -OutFile $filePath

这样做不是用 repo 中的文件替换本地文件,而是用响应正文的内容替换本地文件的内容。我发现奇怪的是,我一直在做的所有谷歌搜索都说要这样做,即使 Microsoft article on Invoke-RestMethod实际上解释了这就是 -OutFile 所做的。

请注意,我也尝试过 Invoke-WebRequest....同样的事情。

那么如何将实际文件从 repo 下载到我想要的本地目标(或将本地目标文件的内容替换为 repo 文件的内容)?

另外,有没有办法指定从哪个分支获取文件?也许我也应该以某种方式使用 Git powershell 命令?我所做的关于从 git 存储库下载的所有其他谷歌搜索都得出了关于 GitHub 的结果。

谢谢!

最佳答案

通过以下模板使用 rest api:

获取 https://{tfs_url}/{collection_name}/{project}/_apis/git/repositories/{repositoryId}/items?path={path}

查看文档:Items - Get , Example - Download

我使用以下代码在构建管道中复制文件(使用 System.Net.WebClient):

$user = ""
$token = $env:SYSTEM_ACCESSTOKEN
$teamProject = $env:SYSTEM_TEAMPROJECT
$orgUrl = $env:SYSTEM_COLLECTIONURI
$repoName = "REPO_NAME"

$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))

function InvokeGetFileRequest ($GitFilePath, $OutFilePath)
{
Write-Host "Download file" $GitFilePath "to" $OutFilePath

$uriGetFile = "$orgUrl/$teamProject/_apis/git/repositories/$repoName/items?scopePath=$GitFilePath&download=true&api-version=6.1-preview.1"

Write-Host "Url:" $uriGetFile

$wc = New-Object System.Net.WebClient
$wc.Headers["Authorization"] = "Basic {0}" -f $base64AuthInfo
$wc.Headers["Content-Type"] = "application/json";
$wc.DownloadFile($uriGetFile, $OutFilePath)
}

关于git - 尝试使用 Powershell 从 Azure DevOps Git 存储库下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67272942/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com