curl - 使用 TFS 的 cURL 和 REST API 安装扩展时出现问题
问题描述
我正在尝试使用 TFS 2018 的 REST API 在 cURL 的帮助下在我们的服务器上安装扩展。这个过程必须每天重复,这就是为什么我想使用带有 cURL 的命令来运行它。
到目前为止,我想出了如何使用以下命令获取服务器上所有已安装扩展的列表。这告诉我连接和身份验证运行良好。
curl -u {username}:{PAT} -d "" -X GET http://{instance}/{collection}/_apis/extensionmanagement/installedextensions?api-version=4.1-preview.1
要安装扩展程序,我已从 microsoft doc 阅读此信息:https ://docs.microsoft.com/en-us/rest/api/azure/devops/extensionmanagement/installed%20extensions/install%20extension%20by%20name?view =vsts-rest-tfs-4.1
我尝试制定一个命令来安装我在这里找到的扩展:https ://marketplace.visualstudio.com/items?itemName=benjhuser.tfs-extensions-build-tasks 。
命令是:
curl -u {username}:{PAT} -H "Content-Type: application/json" -X POST http://{instance}/{collection}/_apis/extensionmanagement/installedextensionsbyname/benjhuser/tfs-extensions-build-tasks/3.0.14?api-version=4.1-preview.1
我认为扩展的发布者、id 和版本应该是正确的,因为我从这个发布文档中获取了它们:https ://github.com/huserben/TfsExtensions/blob/master/BuildTasks/vss-extension.json 。
响应说扩展不存在。这令人困惑。有人可以给我一些提示,问题可能是什么?先感谢您。
{
"$id": "1",
"innerException": null,
"message": "The requested extension 'benjhuser.tfs-extensions-build-tasks' doesn't exist.",
"typeName": "Microsoft.VisualStudio.Services.Gallery.WebApi.ExtensionDoesNotExistException, Microsoft.VisualStudio.Services.Gallery.WebApi",
"typeKey": "ExtensionDoesNotExistException",
"errorCode": 0,
"eventId": 3000
}
解决方案
Install Extension By Name Rest API 用于安装预安装的扩展。您需要在本地添加扩展。请参阅有关为本地服务器安装扩展的文档。
请尝试以下步骤:
1.打开浏览器的开发者工具(F12),点击安装按钮。您可以在 URL 中找到发布者名称和扩展名。 2.检查开发者工具中的网络选项卡(F12)。您可以找到类似的 REST API
GET http://{instance}/{collection}/_gallery/items?itemName={publisher name}.{extension name}&install=true&installContext={Some context}
.
installContext 不会改变,每次安装新扩展时只需要在此处更改发布者名称和扩展名: 3.现在,您可以在本地扩展中找到此扩展。
在此之后,您可以使用按名称安装扩展 API 来安装扩展。
夏季步骤:
1.curl -u {username}:{PAT} -X GET http://{instance}/{collection}/_gallery/items?itemName=benjhuser.tfs-extensions-build-tasks&install=true&installContext={installContext}
2.curl -u {username}:{PAT} -d "" -H "Content-Type: application/json" -X POST http://{instance}/{collection}/_apis/extensionmanagement/installedextensionsbyname/benjhuser.tfs-extensions-build-tasks?api-version=4.1-preview.1
此外,Azure DevOps Services 可以直接使用 Install Extension By Name API。
推荐阅读
- html - HTML:如何正确设置嵌套标题
- javascript - 您如何在移动(android)应用程序中使用 JS 记住滚动位置
- javascript - 输入字段变得未聚焦 onChange 事件 - ReactJs
- html - 使网页宽度响应每个屏幕设备
- node.js - 阅读 ECONNRESET - 流星
- javascript - JS草案:即使在只读模式下也可以注册点击位置
- java - 如何在android studio中处理最近的应用导航按钮?
- python - 用不同的数据结构表示三角剖分
- modelica - 在 FMU 中添加输入 txt 以进行协同仿真
- python - TypeError:'float' 对象不是可迭代的 Python