通过 API 合并 bitbucket 拉取请求

Merging bitbucket pull request via API

根据 Bitbucket API documentation,我应该能够将带有 POST 的拉取请求合并到此 url:

https://bitbucket.example.com/rest/api/1.0/projects/{projectkey}/repos/{repositoryslug}/pull-requests/{pullrequestid}/merge?version

然而,每当我尝试时,我都会收到回复 409 Conflict 并且在回复中包含以下内容:

"message": "You are attempting to modify a pull request based on out-of-date information.",
"currentVersion": 0,
"expectedVersion": -1,

我尝试传递 0 作为版本号,-1 作为版本号,完全省略版本号 - 结果总是一样的。我怎样才能让它合并?

version 值应该是来自 GET 请求的响应的值,如记录 here

此外,您可以通过 GET requestmerge 端点

来检查拉取请求是否可以合并

事实证明,atlassian API 文档有点错误(或不清楚)。我做的一切都是正确的,但版本号需要以不同的方式传递。根据文档,格式为

https://.../merge?version

而正确的格式是

https://.../merge?version=<version>