使用 GitHub V3 API (REST) 创建分支

Cam*_*nso 5 api rest github github-api

我正在尝试通过 REST 使用 GitHub V3 API 分叉一个存储库,但是,我在按照文档发出 POST 请求时遇到问题(https://developer.github.com/v3/repos/forks/#create-一把叉子)。

基本上,到目前为止我所拥有的:

  • 具有 OAuth 令牌的登录用户
  • 对 API (URL:) 的 POST 请求设置https://api.github.com/repos/carmichaelalonso/infiniteflight/forks/- 我首先使用 hurl.it 对此进行测试。
  • 请求中的标头:一个标头的名称Authorization值为“token ...”,另一个标头的Content-Type值指定application/json
  • 具有以下 JSON 的正文:{"organization" : "shortlisthome"}(shortlisthome 是我尝试将存储库分叉到的帐户。

我不打算将其分叉给一个组织,而不是一个标准用户帐户,这就是我感到困惑的地方。当我运行请求时,我没有收到任何身份验证错误或 404 错误(我以前有过,但我错误地输入了不正确的值,导致了此类错误)。

当我运行此请求时,我得到以下结果(422 无法处理的请求):

{
    "message": "Validation Failed",
    "documentation_url": "---url-to-docs---",
    "errors": [
        {
            "resource": "Fork",
            "code": "invalid",
            "field": "organization"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我不确定我是否能够将其分叉给标准用户,或者这是否是我的请求的错误。如果我可以提供更多信息,请告诉我(这里是第一篇文章,所以对惯例有点不熟悉)。谢谢!

Ian*_*sco 2

为了让Shortlisthome分叉存储库,您需要以他们的身份进行身份验证。您尝试分叉的存储库是 public 的,因此您所需要做的就是获取 Shortlisthome 的 OAuth 令牌,然后向您现在发出的请求发出类似的请求。唯一的区别是您不需要提供 的 JSON 主体{"organization": "shortlisthome"}

就其价值而言,可选的 JSON 正文适合当您是具有适当权限的组织的成员并且想要将存储库分叉到该组织时使用。除非您经过身份验证,否则您无法将存储库分叉到其他人的帐户。