Azure Devops由于权限原因无法以编程方式创建服务挂钩

时间:2019-05-20 11:16:22

标签: azure azure-devops hook webhooks azure-devops-rest-api

我正在使用Rest API(从这里:https://docs.microsoft.com/en-us/rest/api/azure/devops/hooks/subscriptions/create?view=azure-devops-rest-5.0#security)在Azure DevOps上为项目设置服务挂钩

对于该组织中的同一用户,我已经从项目设置(来自https://dev.azure.com/ {organization} / {repo} / _ settings / serviceHooks)中成功创建了服务挂钩。因此,这意味着我有权创建订阅挂钩。

对于编程,我使用PAT对xxx组织的范围代码(读,写)(vs.code_write)进行授权。我已经尝试过使用具有full_access的PAT,但效果不佳。

这是请求:

POST https://dev.azure.com/xxx/_apis/hooks/subscriptions?api-version=5.0

Header: Authorization: Basic <Base64PAT>
Body: {
  "publisherId": "tfs",
  "eventType": "git.pullrequest.updated",
  "resourceVersion": "1.0",
  "consumerId": "webHooks",
  "consumerActionId": "httpRequest",
  "publisherInputs": {
    "notificationType": "PushNotification",
    "repository": "<repo_id>"
  },
  "consumerInputs": {
    "url": "https://my/receiver/url/"
  }
}

这是ERROR响应:

{
    "$id": "1",
    "innerException": null,
    "message": "The user '<user_id>\\<email>' does not have permission to edit a subscription.",
    "typeName": "System.ArgumentException, mscorlib",
    "typeKey": "ArgumentException",
    "errorCode": 0,
    "eventId": 0
}

1 个答案:

答案 0 :(得分:0)

  

Azure Devops由于权限原因,无法以编程方式创建服务挂钩

根据错误信息:

  

“用户'\'无权编辑   订阅。”

似乎您没有编辑订阅的权限。我们知道,当事件发生时,将评估项目中所有已启用的订阅,并对所有匹配的订阅执行消费者操作

因此,我们应该有权编辑订阅。您可能需要“ Edit Subscriptions”和“ view subscriptions”来设置订阅。默认情况下,只有项目管理员拥有这些权限。

检查Q & A以获得更多详细信息。

希望这会有所帮助。