【问题标题】:Azure DevOps Rest API in Powershell saying no parameters matchingPowershell 中的 Azure DevOps Rest API 说没有参数匹配
【发布时间】:2019-10-25 13:30:31
【问题描述】:

我开始使用 PowerShell 调用 Azure DevOps REST API。但似乎当我尝试添加参数时它告诉我:

找不到与参数名称匹配的参数 'repositoryId'

这是我的调用在 PowerShell 中的样子。如果我取出参数,它会起作用。我做错了什么?

Invoke-RestMethod -Uri 'https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=5.1' -repositoryId $repoId -Headers (my authentication) -Method Get

根据 Microsoft 的文档,这应该可以工作。 https://docs.microsoft.com/en-us/rest/api/azure/devops/build/builds/list?view=azure-devops-rest-5.1

【问题讨论】:

    标签: powershell azure-devops


    【解决方案1】:

    repositoryId 应该是 Booga Roo 提到的 url 参数。该错误表明缺少存储库类型

    您应该在您的 uri repositoryType={repositoryType} 中添加另一个参数。所以 uri 应该如下所示。

    请检查here 了解所有存储库类型

    https://dev.azure.com/{Organization}/{Project}/_apis/build/builds?repositoryId={id}&repositoryType=TfsGit&api-version=5.1
    

    加法:

    您可以从项目设置Repos下的Repositories页面的URL获取您的repositoryId。检查下面的屏幕截图。

    【讨论】:

      【解决方案2】:

      Invoke-RestMethod cmdlet 没有-repositoryId 参数。帮助页面上的措辞和示例适用于“URI 参数”而不是 PowerShell 参数。这意味着您需要将其构建为-Uri 值,而不是尝试直接使用它。

      我建议使用这个:

      Invoke-RestMethod -Uri "https://dev.azure.com/{organization}/{project}/_apis/build/builds?repositoryId={$repoId}&api-version=5.1" -Headers (my authentication) -Method Get
      

      旁注:此示例 URI 周围有双引号。这样 $repoId 的变量扩展就会发生并被正确解释为 URI 的一部分。在原始示例中使用单引号将防止这种情况发生并将其视为文字字符串值并且不会执行任何替换。

      【讨论】:

      • 我尝试了您的建议,这就是我最初尝试的方法,但我得到 "Invoke-RestMethod : {"$id":"1","innerException":null,"message":"Repository类型丢失/无效。","typeName":"Microsoft.TeamFoundation.Build.WebApi.RepositoryInformationInvalidException, Microsoft.TeamFoundation.Build2.WebApi","typeKey":"RepositoryInformationInvalidException","errorCode":0,"eventId": 3000}"
      • 我目前没有实例来测试,但我希望这意味着回购 ID 不正确、格式错误、未扩展、丢失,或者您没有对该特定仓库的权限。但是,既然你说它不使用参数就可以工作,我想你确实有权限。那么,如果您检查 $repoId 的值,它会返回您所期望的吗?
      • @Nathan 在上面的 URI 示例中还缺少一个 & 符号。希望您注意到了,但它已更新为在示例中添加。
      • 感谢您的所有帮助。似乎在我的 RepositoryType 周围加上引号是我的问题。它现在不会抛出错误并向我显示我期望的结果。谢谢大家的帮助!
      猜你喜欢
      • 1970-01-01
      • 2020-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-31
      • 1970-01-01
      • 1970-01-01
      • 2021-04-19
      相关资源
      最近更新 更多