如何通过 Bitbucket API 创建拉取请求?



TL;DR: 我在哪里可以找到有关传递给 POST 请求以创建拉取请求的文档?(在 JSON 中放入什么)


使用 Groovy 脚本,我正在尝试自动化一些任务,其中包括在多个项目上提交/推送 tmp 分支。我想在脚本结束时自动在 tmp 分支和所有这些项目的 prod 分支之间创建拉取请求。为了做到这一点,我尝试使用BitBucket REST API。

我找到了这个文档,它给了我以下端点来与 POST 请求一起使用:/rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/pull-requests。 此点需要以下 JSON:

{
"title": "Talking Nerdy",
"description": "It’s a kludge, but put the tuple from the database in the cache.",
"state": "OPEN",
"open": true,
"closed": false,
"fromRef": {
"id": "refs/heads/feature-ABC-123",
"repository": {
"slug": "my-repo",
"name": null,
"project": {
"key": "PRJ"
}
}
},
"toRef": {
"id": "refs/heads/master",
"repository": {
"slug": "my-repo",
"name": null,
"project": {
"key": "PRJ"
}
}
},
"locked": false,
"reviewers": [
{
"user": {
"name": "charlie"
}
}
]
}

但是,我找不到有关如何构建此 JSON 的任何信息...... 我可以猜到titledescription是什么,但是stateopenclosed等有什么用?如何构建正确的fromRef.id?为什么存储库名称设置为null?哪个属性是可选的?如果我把我的BitBucket登录名放在reviewers[0].user.name,它会起作用吗?等。

我在这个主题上找到的每个答案都只是复制/过去同一个 JSON,每个人似乎都明白它是如何工作的,没有任何解释......我错过了什么吗?

无论如何,这是我真正的问题:我在哪里可以找到有关此拉取请求 JSON 对象的一些文档?

谢谢。


编辑:这不是这篇文章的副本,因为这不是同一个问题。我对权限/身份验证没有问题,我什至设法通过摆弄它来使请求工作。我只是要求提供文档,因为我想了解我在做什么,以便最好地自定义请求。 虽然在另一篇文章的答案中有一些(非常轻松的)解释,但它实际上根本没有回答我的问题(见评论)。

使用此处找到的文档,我能够从PowerShell脚本中成功创建具有最小属性(因此推断什么是可选属性)的拉取请求。

我的示例使用master

作为要合并到的分支,foo作为要合并的分支,分别使用Project1Repository1作为BitBucket项目和存储库。uri如下(替换根目录、项目和存储库):https://bitbucket.example.com/rest/api/1.0/projects/Project1/repos/Repository1/pull-requests.

发送以下JSON(使用正确的Content-TypeAuthorization标头)将创建拉取请求:

{
"title" : "This is the title of my pull request",
"description" : "This is the description of my pull request",
"fromRef" : {
"id" : "refs/heads/foo",
"repository" : "Repository1",
"project" : {
"key" : "Project1"
}
},
"toRef" : {
"id" : "refs/heads/master",
"repository" : "Repository1",
"project" : {
"key" : "Project1"
}
}
}

statereviewers是可选的,在此示例中省略。

最新更新