Drone

Bitbucket server missing tag events

Hi, thanks for the great work. I am aware scm providers brew their own soup, and we are far away from a standardization when it comes to interfacing with them, but as far as i had to deal with bitbucket server so far, drone’s client implementation looks a little bit too simple to me.
My current problem is, that drone is never “receiving” any event for annotated tags from bitbucket server (aka stash). As far as I digged into the webhook payload and the drone source code, this will also never happen, as bitbucket is sending multiple changes in the payload, but drone is always only evaluating the first one [1], while the tag event payload is as far as I have seen it the second payload:

{
“eventKey”: “repo:refs_changed”,
“date”: “2020-06-21T22:50:39+0200”,
“actor”: {
“name”: “dab7d851befbb495”,
“id”: 51,
“displayName”: “Access Key User - root@build”,
“active”: true,
“slug”: “dab7d851befbb495”,
“type”: “SERVICE”,
“links”: {
“self”: [
{
“href”: “https://host/bots/dab7d851befbb495
}
]
}
},
“repository”: {
“slug”: “xxx-api”,
“id”: 192,
“name”: “xxx-api”,
“hierarchyId”: “cb4c9f6db3e314b4cd4a”,
“scmId”: “git”,
“state”: “AVAILABLE”,
“statusMessage”: “Available”,
“forkable”: true,
“project”: {
“key”: “xxx”,
“id”: 6,
“name”: “xxx”,
“public”: false,
“type”: “NORMAL”,
“links”: {
“self”: [
{
“href”: “https://host/projects/xxx
}
]
}
},
“public”: false,
“links”: {
“clone”: [
{
“href”: “https://host/scm/xxx/xxx-api.git”,
“name”: “http”
},
{
“href”: “ssh://git@host:7999/xxx/xxx-api.git”,
“name”: “ssh”
}
],
“self”: [
{
“href”: “https://host/projects/xxx/repos/xxx-api/browse
}
]
}
},
“changes”: [
{
“ref”: {
“id”: “refs/heads/master”,
“displayId”: “master”,
“type”: “BRANCH”
},
“refId”: “refs/heads/master”,
“fromHash”: “eea412ef9a5fb9d89d111b757283b24f5d7df85a”,
“toHash”: “78ef66e0a84f056d79afabced18c948d3e1b5d92”,
“type”: “UPDATE”
},
{
“ref”: {
“id”: “refs/tags/v1.13.1”,
“displayId”: “v1.13.1”,
“type”: “TAG”
},
“refId”: “refs/tags/v1.13.1”,
“fromHash”: “0000000000000000000000000000000000000000”,
“toHash”: “180955012fc9ca2ac44a7134fb02df3ce1ad451a”,
“type”: “ADD”
}
]
}

Any chances to work around that?

br, Sven

PS: Sorry, for not being able to insert the payload appropriately. Just copy&paste it into your favourite formatting tool.

[1] https://github.com/drone/go-scm/blob/master/scm/driver/stash/webhook.go#L82