首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从powershell执行修补程序api调用

从powershell执行修补程序api调用
EN

Stack Overflow用户
提问于 2020-11-04 16:54:35
回答 1查看 3.2K关注 0票数 1

我试图从powershell运行下面的API 'Patch‘命令,我想在Azure DevOps中执行一个发行版.

代码语言:javascript
运行
复制
$deploy = Invoke-RestMethod -Uri $patchurl -Method Patch -Body $body -Headers $header -ContentType "application/json-patch+json"

下面是url示例

代码语言:javascript
运行
复制
https://vsrm.dev.azure.com/test/Fixed%20Income/_apis/Release/releases/567/environments/1072?api-version=6.0-preview.6

贴片呼叫的身体是..。

代码语言:javascript
运行
复制
    "Status": "inProgress",
    "scheduledDeploymentTime": null,
    "comment": null,
    "variables": {}

从powershell运行invoke命令将返回以下响应.

调用-eventId方法:{"$id":"1","innerException":null,“消息”:“TF400898:发生内部错误。”活动Id: 759888ab-9828-4cb6-ba2f-e90cde1cd39a。“,System.Web.Http","typeKey":"HttpResponseException","errorCode":0,"eventId":0}

当我运行相同的url来运行邮递员的“补丁”请求时,我会得到下面的响应,这就是我期望从Powershell获得的响应。

"$id":"1","innerException":null,"message":"TF400813:用户'‘未被授权访问该资源。“,"typeName":Microsoft.TeamFoundation.Framework.Server,"typeKey":"UnauthorizedRequestException","errorCode":0,"eventId":3000

知道我做错什么了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-05 03:23:01

根据您的描述,当您从邮递员调用此REST API时,响应将返回一个错误:"message":"TF400813: user“未被授权访问此资源。”此问题的原因是授权不正确。

请先在组织中创建一个新的个人访问令牌,然后在授权选项卡中选择类型:Basic Auth,然后在右侧的密码输入框中键入PAT。

当您从powershell调用此REST时,响应返回一个错误:"TF400898:发生了内部错误。活动Id: 759888ab-9828-4cb6-ba2f-e90cde1cd39a“。造成此问题的原因是内容类型不正确。

请使用ContentType ContentType代替ContentType“application/json-补丁+json”。

代码语言:javascript
运行
复制
Script template:
$token = "PAT"
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))
$url3="https://vsrm.dev.azure.com/{organization}/{project}/_apis/Release/releases/{releaseId}/environments/{environmentId}?api-version=6.0-preview.6"
  $body = "{
  `"status`": `"inProgress`",
  `"scheduledDeploymentTime`": null,
  `"comment`": null,
  `"variables`": {}
    }"
$response3 = Invoke-RestMethod -Uri $url3 -Headers @{Authorization = "Basic $token"} -Method Patch -Body $body -ContentType application/json

请参考创建PAT的以下步骤

  1. 从主页中,打开用户设置,然后选择个人访问令牌。

  1. 从主页中,打开用户设置,然后选择个人访问令牌。命名您的令牌,选择要使用该令牌的组织,然后为您的令牌选择一个生存期。选择Create。

  1. 完成后,请确保复制令牌。为了你的安全,它不会再显示了。使用此令牌作为您的密码。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64684377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档