我们的项目当前正在使用VSTS(Visual Studio Team Services)软件包在项目之间共享软件包。我们希望采用Release Views功能来挑选处于不同成熟阶段的软件包,以自动发布到不同的环境。
虽然很容易将软件包升级为特定视图,但是我还没有找到一种从该视图取消升级软件包的方法。出于几个原因可能需要这样做:
我没有找到通过VSTS用户界面执行此操作的直接方法。我确实找到了一些articles通过REST API来执行此操作,但是看起来Feed中的current APIs不再支持此操作。
有人知道如何实现这一目标吗?
答案 0 :(得分:1)
目前,在VSTS软件包管理中无法取消推广软件包。
然后,我发布了一个用户语音Enable to unpromote package in VSTS package management and update REST API document,建议添加该功能以取消推广软件包并更新REST API文档。您可以投票并跟进。
以及用于推广NuGet包的REST API,如下所示:
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" }
}
注意:
feedId
和packageId
,您可以改用feed名称和包名称。 3.0-preview.1
。如下面的示例所示,在新提要的ConsoleApp1
视图中将版本为1.5.0-alpha
的nuget软件包pre
升级为$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
视图,则REST API为(成功则响应202接受状态):
并使用PowerShell实现该示例,脚本可以是:
Predicate predicate = criteriaBuilder.like(root.get(filterKey).as(String.class),
"%" + filterValue + "%");