因此,大量研究表明,将 NuGet 包推送到 VSTS 包管理的唯一方法是使用 CLI 工具而不是 NuGet Package Explorer 应用程序。所以,我希望能够解决这个问题,让生活变得更轻松。
初步研究让我认为我可以使用 Microsoft 提供的 REST API 之一。当我在 Postman 中使用下面的链接时,我收到的响应通常是 Microsoft 登录页面,这正是我在 GET 请求中未传递任何身份验证时所期望的。
但是,当我用自己的名称替换模拟帐户和 Feed 名称时,出现 401 错误。
https://sartainsoftwaresolutions.feeds.visualstudio.com/DefaultCollection/_apis/packaging/feeds/SartainSoftware.Common/packages?api-version=2.0-preview
除非我必须在 VSTS 帐户中启用对给定 API 的访问,否则我不确定我缺少什么。
有什么想法吗?
最佳答案
首先,关于401问题,您需要指定备用身份验证凭据(配置文件>安全>备用身份验证凭据)或个人访问 token (用户名为空,不需要指定),您不能直接使用电子邮件帐户(例如 xxx.hotmail.com)
其次,要推送 NuGet 包,您可以使用此 REST API:
放置 https://[account].pkgs.visualstudio.com/_packaging/[feed id]/nuget/v2/
Postman 的简单步骤:
- 使用Get feeds/获取 feed REST API 以获取 feed id
- 在上面输入推送包 REST API URL 并将请求方法更改为 PUT
- 点击授权标签
- 选择基本身份验证
- 将用户名保留为空,然后在密码框中输入个人访问 token
- 点击 header 选项卡并添加新项目(键:
X-NuGet-ApiKey
;值:VSTS
) - 点击正文标签
- 选择表单数据选项
- 添加新项目:在Key框中选择文件选项,然后单击选择文件按钮选择一个nupkg文件
- 点击“发送”按钮,响应状态结果将为 202。
关于登录页面问题,如果当前用户在调用REST API时未经过身份验证,则不会重定向到登录页面。您可以authorize access to REST APIs with OAuth .
关于nuget-package-explorer - Visual Studio 团队服务包管理 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44608836/