调用REST API升级Azure Artifacts包视图时提示包不存在如何解决
问题排查与解决方案
核心根因
报错核心是API参数解析异常导致系统错误匹配到了其他包,而非你操作的包真的不存在,共有三个常见错误点:
- 请求体格式不符合JSON Patch规范:Azure Artifacts的资源PATCH操作要求请求体为数组格式,你当前提交的是单个对象,导致参数解析错位,系统才会去
foundations 0.0.74965包下寻找对应文件。 - 包名路径转义错误:如果你的
testLib是带组织作用域的包(格式为@<作用域名>/testLib),请求URL中的包名需要做URL编码,将@转义为%40,/转义为%2F,否则API会拆分路径匹配到错误的包。 - 视图参数不匹配:视图名称大小写敏感,需要和feed中已创建的发布视图名称完全一致,且操作身份需要有对应视图的包提升权限。
正确调用示例
请求信息
- 请求方法:
PATCH - 请求URL(无作用域包):
https://pkgs.dev.azure.com/MyOrg/_apis/packaging/feeds/5aa467a8-14d8-4590-8579-37d9769f6159/npm/testLib/versions/0.0.12345?api-version=6.1-preview.1 - 请求URL(带作用域包,示例作用域为MyOrg):
https://pkgs.dev.azure.com/MyOrg/_apis/packaging/feeds/5aa467a8-14d8-4590-8579-37d9769f6159/npm/%40MyOrg%2FtestLib/versions/0.0.12345?api-version=6.1-preview.1
请求体
[ { "op": "add", "path": "/views/-", "value": "Test" } ]
前置验证步骤
你可以先调用如下GET接口拉取feed下所有npm包的元数据,确认你要操作的包名、版本号完全匹配:GET https://pkgs.dev.azure.com/MyOrg/_apis/packaging/feeds/5aa467a8-14d8-4590-8579-37d9769f6159/npm/packages?api-version=6.1-preview.1
工件存在证明

内容的提问来源于stack exchange,提问作者Nerd in Training
相关产品推荐
相关产品推荐

