gpt4 book ai didi

powershell - 如何使用 REST API 销毁 TFVC 中的分支?

转载 作者:行者123 更新时间:2023-12-04 13:52:23 27 4
gpt4 key购买 nike

我希望使用 REST API 和 Powershell 删除并销毁 TFVC(在 Azure Devops 中)中的一个分支,但在查看文档后我不得不问:这可能使用 API 吗?

使用 the GET documentation作为指导,我可以对其进行猜测并运行类似于以下内容的操作:

DELETE https://dev.azure.com/{organization}/{project}/_apis/tfvc/branches?path={path}&api-version=6.0

但考虑到这些调用的破坏性,我不愿意猜测。并且没有明显的方法来调用销毁功能。

或者,如果我要运行命令行 tf vc destroy "$/MyBranch/Path",是否有一种方法可以跟踪必须(可能?)执行的 API 调用?还是我将不得不为此使用 Powershell 管理单元?

最佳答案

为什么不在 powershell 中使用 tf vc destroy?大多数 TFVC 由旧的 SOAP API 处理,没有 REST 等效项。不太可能为 TFVC 投资更多的 REST API。假设您在机器上安装了 Team Explorer,您可以从 powershell 调用 tf vc

或者,您可以将客户端对象模型直接加载到 PowerShell 中并从中调用销毁调用。 The call is pretty straightforward .这样,客户端对象模型将完成所有 API 角力。 You can get the assemblies from NuGet无需将 Team Explorer 安装到机器上。

要获取 VersionControlServer 类的实例,您可以 look at my TFVC tasks .下面的代码未经测试,但应该让您真正接近:

[System.Reflection.Assembly]::LoadFrom("Newtonsoft.Json.dll") 
[System.Reflection.Assembly]::LoadFrom("Microsoft.TeamFoundation.Client")
[System.Reflection.Assembly]::LoadFrom("Microsoft.TeamFoundation.Common")
[System.Reflection.Assembly]::LoadFrom("Microsoft.TeamFoundation.VersionControl.Client")
[System.Reflection.Assembly]::LoadFrom("Microsoft.TeamFoundation.WorkItemTracking.Client")
[System.Reflection.Assembly]::LoadFrom("Microsoft.TeamFoundation.Diff")

$OnNonFatalError = [Microsoft.TeamFoundation.VersionControl.Client.ExceptionEventHandler] {
param($sender, $e)

if ($e.Exception -ne $null -and $e.Exception.Message -ne $null)
{
Write-Message -Type Warning $e.Exception.Message
}
if ($e.Failure -ne $null -and $e.Failure.Message -ne $null)
{
Write-Message -Type Warning $e.Failure.Message
if ($e.Failure.Warnings -ne $null -and $e.Failure.Warnings.Length -gt 0)
{
foreach ($warning in $e.Failure.Warnings)
{
Write-Message -Type Warning $warning.ParentOrChildTask
}
}
}
}

function Get-TfsVersionControlServer()
{
[cmdletbinding()]
param(
[string] $ProjectCollectionUri
)

$collection = New-Object Microsoft.TeamFoundation.Client.TfsTeamProjectCollection(
$ProjectCollectionUri)
$collection.EnsureAuthenticated()

$versionControlServer =
$provider.TfsTeamProjectCollection.GetService([Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer])
$versionControlServer.add_NonFatalError($OnNonFatalError)
return $versionControlServer
}

Get-TfsVersionControlServer().Destroy(...)

然后从那里调用销毁函数。

关于powershell - 如何使用 REST API 销毁 TFVC 中的分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68093058/

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