VSTS - 从发布视图中取消升级包版本
VSTS - unpromote a package version from release view
我们的项目目前正在使用 VSTS(Visual Studio Team Services)包在项目之间共享包。我们希望采用 Release Views 特性来挑选不同成熟阶段的包,以自动发布到不同的环境。
虽然将包升级到特定视图非常容易,但我还没有找到从该视图取消升级包的方法。出于以下几个原因可能需要这样做:
- 包被错误地提升了。
- 由于发现了一些问题,因此需要取消升级包,因此需要将其降级到较低的成熟度级别。
我没有找到通过 VSTS 用户界面执行此操作的直接方法。我确实在 Feeds 下发现一些 articles of doing it via REST APIs, but looks like the current APIs 不再支持此功能。
有人知道如何实现吗?
目前,无法在 VSTS 包管理中取消升级包。
并且我发布了一个用户声音 Enable to unpromote package in VSTS package management and update REST API document,建议将此功能添加到 unpromote packages 并更新 REST API 文档。您可以投票和跟进。
和 REST API 推广 NuGet 包如下:
PATCH https://{account}.pkgs.visualstudio.com/DefaultCollection/_apis/packaging/feeds/{feedId}/nuget/packages/{packageId}/versions/{packageVersion}?api-version=5.0-preview.1
application/json:
{
"views":
{ "op":"add",
"path":"/views/-",
"value":"release view" }
}
注:
- 对于请求 URL 中的
feedId
和 packageId
,您可以改用 Feed 名称和包名称。
- 对于 REST API 版本,您也可以使用旧版本,例如
3.0-preview.1
。
如以下示例,在 pre
视图的新提要中推广版本 1.5.0-alpha
的 nuget 包 ConsoleApp1
,REST API 是(响应 202 Accepted 状态,如果成功):
并使用PowerShell实现示例,脚本可以是:
$releaseViewURL = "https://marinaliu.pkgs.visualstudio.com/DefaultCollection/_apis/packaging/feeds/new/nuget/packages/ConsoleApp1/versions/1.5.0-alpha?api-version=5.0-preview.1"
$json = '
{
"views":
{ "op":"add",
"path":"/views/-",
"value":"pre" }
}
'
$bodyJson=$json | ConvertFrom-Json
$user="name"
$token="p1tjzehdq6tilwfjdbgbkymo3f3ojszmrlfgzh302fww6kgwnavq"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
$response = Invoke-RestMethod -Uri $releaseViewURL -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -ContentType "application/json" -Method Patch -Body $bodyJson
我们的项目目前正在使用 VSTS(Visual Studio Team Services)包在项目之间共享包。我们希望采用 Release Views 特性来挑选不同成熟阶段的包,以自动发布到不同的环境。
虽然将包升级到特定视图非常容易,但我还没有找到从该视图取消升级包的方法。出于以下几个原因可能需要这样做:
- 包被错误地提升了。
- 由于发现了一些问题,因此需要取消升级包,因此需要将其降级到较低的成熟度级别。
我没有找到通过 VSTS 用户界面执行此操作的直接方法。我确实在 Feeds 下发现一些 articles of doing it via REST APIs, but looks like the current APIs 不再支持此功能。
有人知道如何实现吗?
目前,无法在 VSTS 包管理中取消升级包。
并且我发布了一个用户声音 Enable to unpromote package in VSTS package management and update REST API document,建议将此功能添加到 unpromote packages 并更新 REST API 文档。您可以投票和跟进。
和 REST API 推广 NuGet 包如下:
PATCH https://{account}.pkgs.visualstudio.com/DefaultCollection/_apis/packaging/feeds/{feedId}/nuget/packages/{packageId}/versions/{packageVersion}?api-version=5.0-preview.1
application/json:
{
"views":
{ "op":"add",
"path":"/views/-",
"value":"release view" }
}
注:
- 对于请求 URL 中的
feedId
和packageId
,您可以改用 Feed 名称和包名称。 - 对于 REST API 版本,您也可以使用旧版本,例如
3.0-preview.1
。
如以下示例,在 pre
视图的新提要中推广版本 1.5.0-alpha
的 nuget 包 ConsoleApp1
,REST API 是(响应 202 Accepted 状态,如果成功):
并使用PowerShell实现示例,脚本可以是:
$releaseViewURL = "https://marinaliu.pkgs.visualstudio.com/DefaultCollection/_apis/packaging/feeds/new/nuget/packages/ConsoleApp1/versions/1.5.0-alpha?api-version=5.0-preview.1"
$json = '
{
"views":
{ "op":"add",
"path":"/views/-",
"value":"pre" }
}
'
$bodyJson=$json | ConvertFrom-Json
$user="name"
$token="p1tjzehdq6tilwfjdbgbkymo3f3ojszmrlfgzh302fww6kgwnavq"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
$response = Invoke-RestMethod -Uri $releaseViewURL -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -ContentType "application/json" -Method Patch -Body $bodyJson