首页 > 解决方案 > 使用 GitHub 的 API 创建拉取请求

问题描述

我正在尝试使用此文档直接使用它的 REST API 向 GitHub 发出拉取请求:

https://developer.github.com/v3/pulls/#create-a-pull-request

我创建了一个公共仓库,我尝试通过 API 检索拉取请求的操作,并且工作正常。但是当我尝试使用此操作创建拉取请求时:

POST /repos/:owner/:repo/pulls

这个身体:

    {
  "title": "Amazing new feature",
  "body": "Please pull this in!",
  "head": "theOwner:new-branch",
  "base": "master"
}

然后我从响应中收到此消息:

{
    "message": "Not Found",
    "documentation_url": "https://developer.github.com/v3/pulls/#create-a-pull-request"
}

我提出请求的完整网址是:

https://api.github.com/repos/alvarocallero/node-test/pulls

我正在使用的请求的正文是否正确?可能是“head”的值不正确。

标签: github

解决方案


feature在同一个存储库中创建了一个分支,我想针对它创建一个拉取请求。之后,我POST /repos/:owner/:repo/pulls使用以下正文调用了问题中提到的 api:

{
  "title": "Amazing new feature",
  "body": "Please pull this in!",
  "head": "feature",
  "base": "master"
}

正如你所看到的,因为我的feature分支与我创建拉取请求的 master 位于同一个仓库中,所以我刚刚在head.

在此之后,我还确保我通过了Authorization(基本身份验证),并且当我调用 API 时,在 github 中创建了拉取请求。

然后我尝试在不传递 Authorization 标头的情况下调用上述 API,我得到了404. 因此,我认为您需要更正head正文中的值,正如您在评论中提到的那样,您的分支与您创建拉取请求的 master 分支位于同一个仓库中。并确保通过Authorization header


推荐阅读