nuget-package-explorer - Visual Studio 团队服务包管理 API

标签 nuget-package-explorer azure-artifacts azure-devops-rest-api

因此,大量研究表明,将 NuGet 包推送到 VSTS 包管理的唯一方法是使用 CLI 工具而不是 NuGet Package Explorer 应用程序。所以,我希望能够解决这个问题,让生活变得更轻松。

初步研究让我认为我可以使用 Microsoft 提供的 REST API 之一。当我在 Postman 中使用下面的链接时,我收到的响应通常是 Microsoft 登录页面,这正是我在 GET 请求中未传递任何身份验证时所期望的。

https://fabrikam.feeds.visualstudio.com/DefaultCollection/_apis/packaging/feeds/EngineeringInternal/packages?api-version=2.0-preview

但是,当我用自己的名称替换模拟帐户和 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 的简单步骤:

  1. 使用Get feeds/获取 feed REST API 以获取 feed id
  2. 在上面输入推送包 REST API URL 并将请求方法更改为 PUT
  3. 点击授权标签
  4. 选择基本身份验证
  5. 将用户名保留为空,然后在密码框中输入个人访问 token
  6. 点击 header 选项卡并添加新项目(键:X-NuGet-ApiKey;值:VSTS)
  7. 点击正文标签
  8. 选择表单数据选项
  9. 添加新项目:在Key框中选择文件选项,然后单击选择文件按钮选择一个nupkg文件
  10. 点击“发送”按钮,响应状态结果将为 202。

关于登录页面问题,如果当前用户在调用REST API时未经过身份验证,则不会重定向到登录页面。您可以authorize access to REST APIs with OAuth .

关于nuget-package-explorer - Visual Studio 团队服务包管理 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44608836/

相关文章:

c# - 构建 NuGet 包时如何向函数添加文档

node.js - 我可以在 Node 项目中使用 Nuget 包吗?

powershell - PowerShell 脚本中的 Azure DevOps REST API 顶级参数不起作用

rest - 在 Azure 管道任务中运行 CURL GET 命令

azure-devops - 使用 vsts rest api 时出现 203 错误

tfs - 如何使用 REST API 列出 TFS GIT 存储库中的所有文件

visual-studio-2017 - 使用 NuGet Package Explorer 和 Azure DevOps Artifacts

NuGet 包管理器什么都不做 - VS 2022?

visual-studio-2017 - VS2017 NuGet : Dependencies not install automatically

azure-artifacts - Azure 工件中通用包的直接下载 URL