如何使用 BitBucket API 获取 PR 的构建状态?

How to get build status of PR using BitBucket API?

使用 Bitbucket API 进行任何拉取请求时,未获得 PR 的构建作业 details/status

这是我的 API URL:

https://example.com/rest/api/1.0/projects/{projectkey}/repos/{reposlug}/pull-requests/{pullrequestID}

构建状态在 GUI 上的样子:

我也尝试了以下方法来获取构建状态,但没有成功

/rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/settings/pull-requests
/rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/settings/hooks

所以我想知道任何 PR 的构建状态是成功还是失败

提前感谢您的回答。

构建状态在提交上,而不是在 PR 上。首先,您应该通过调用 /rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/pull-requests/{pullRequestId} 找到源分支的最新提交。有关详细信息,请参阅 docs

获得提交 ID 后,您可以通过调用 /rest/build-status/1.0/commits/{commitId} 查询构建状态 api。有关详细信息,请参阅 docs

使用 API 2.0

示例:

curl --request GET \
  --url https://api.bitbucket.org/2.0/repositories/piavita/com.piavita-vet.ios/pullrequests/300/statuses \
  --header 'Authorization: Basic SecretKey' \
  --header 'Content-Type: application/json'
curl --request POST \
  --url https://api.bitbucket.org/2.0/repositories/piavita/com.piavita-vet.ios/commit/8619291af393/statuses/build \
  --header 'Authorization: Basic SecretKey' \
  --header 'Connection: keep-alive' \
  --data '{\n   "url": "http://jenkins.ddns.net:8080/job/jobName/123/",\n   "state": "SUCCESSFUL",\n    "key": "JENKINS"\n}'