我正在从 Azure DevOps 2020 中的服务挂钩触发我的管道,现在需要处理一些额外的数据。webhook 请求如下所示(简化示例):
Method: POST
URI: <myURL>/_apis/public/distributedtask/webhooks/TestHookDeletion?api-version=6.0-preview
HTTP Version: 1.1
Headers:
{
Content-Type: application/json; charset=utf-8
}
Content:
{
"subscriptionId": "myID",
"notificationId": 42,
"id": "myID",
"eventType": "workitem.deleted",
"publisherId": "tfs",
"message": null,
"detailedMessage": null,
"resource": {
"id": 4242,
"rev": 3,
"fields": {
...
"System.ChangedDate": "2021-04-15T09:30:38.91Z",
"System.ChangedBy": "TestUser, User <TESTDOMAIN\\testuser>",
...
}
...
我可以像这样访问顶层的内容:
- script: |
echo ${{ parameters.TestHookDeletion.publisherId}}
echo ${{ parameters.TestHookDeletion.subscriptionId}}
displayName: 'Command Line Script: get Parameters Example'
我真正想要访问的是:
${{ parameters.TestHookDeletion.resource.fields.System.ChangedBy}}
经过一些测试后,我得出结论,在示例“System.ChangedBy”中,这似乎是用点来处理 JSON 密钥的问题。
如果您知道如何从请求中访问我想访问的值,请您帮帮我。
谢谢,彼得。