gpt4 book ai didi

git - 如何使用 Azure DevOps REST Api 从 Git 存储库下载分支中的文件?

转载 作者:太空狗 更新时间:2023-10-29 13:34:39 26 4
gpt4 key购买 nike

对于 master 分支中的文件,我可以使用以下 URL - http://tfsserver:8080/tfs/DefaultCollection/TFSProject/_apis/git/repositories/GitRepo/items?path=FilePath&api-version= 4.1

但是如果我需要从分支下载文件怎么办?

附言

我非常清楚我可以克隆一个 git 存储库。我特别需要 REST API。

编辑 1

所以,我尝试了以下代码:

$Url = "http://tfsserver:8080/tfs/DefaultCollection/code/_apis/git/repositories/xyz/itemsbatch?api-version=4.1"
$Body = @"
{
"itemDescriptors": [
{
"path": "/Bootstrap.ps1",
"version": "shelve/vsts",
"versionType": "branch"
}]
}
"@
Invoke-RestMethod -UseDefaultCredentials -Uri $Url -OutFile $PSScriptRoot\AutomationBootstrapImpl.ps1 -Method Post -ContentType "application/json" -Body $Body

成功了,但是生成的文件和我预期的不一样:

{"count":1,"value":[[{"objectId":"ceb9d83e971abdd3326d67e25b20c2cb1b4943e2","gitObjectType":"blob","commitId":"d4a039914002613e775f6274aee6489b244a42a7","path":"/bootstrap.ps1","url":"http://tfsserver:8080/tfs/DefaultCollection/code/_apis/git/repositories/xyz/items/bootstrap.ps1?versionType=Branch&version=shelve%2Fvsts&versionOptions=None"}]]}

但是,它给出了我可以用来从分支获取文件的 URL - http://tfsserver:8080/tfs/DefaultCollection/code/_apis/git/repositories/xyz/items/bootstrap.ps1? versionType=Branch&version=shelve%2Fvsts&versionOptions=None

那么,我们开始吧:

$Url = "http://tfsserver:8080/tfs/DefaultCollection/code/_apis/git/repositories/xyz/items/bootstrap.ps1?versionType=Branch&version=shelve/vsts"
Invoke-RestMethod -UseDefaultCredentials -Uri $Url -OutFile $PSScriptRoot\AutomationBootstrapImpl.ps1

它按预期工作。但是我还是不知道这个API方法的名字是什么?

最佳答案

GetItems Batch API确实包括 versionType of type GitVersionType :

Version type (branch, tag, or commit). Determines how Id is interpreted

因此,如果您向 REST API URL 添加属性:

?versionType=Branch&version=myBranch

这应该足以从特定分支获取项目

正如 OP 所提到的,它提供了一个指向以下内容的中间 URL:

http://tfsserver:8080/tfs/{organization}/{project}/_apis/git/repositories/{repositoryId}/items/{path}?versionType=Branch&version=myBranch

这意味着:

关于git - 如何使用 Azure DevOps REST Api 从 Git 存储库下载分支中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54228312/

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