3

我正在尝试使用 php、curl 和 GitHub API 进行一些 git 自动化。我首先通过创建拉取请求然后合并该拉取请求(全部通过 api)将功能分支合并到默认(主)分支中。

到目前为止,一切都很好。我从拉取请求合并中得到的响应是 sha 值,merged = true 和 message = '拉取请求成功合并'。

接下来,我使用 GitHub API 删除我的 dev 分支。那个操作也成功了。在执行的这一点上,当查看 github.com UI 的“所有分支”列表时,GitHub 上不再存在 dev 分支。

最后,我尝试使用将功能分支合并到主分支的拉取请求返回的 sha 来创建一个新的开发分支(根据https://developer.github.com/v3/git/refs/#create- a-reference ) 与端点:

/repos/{owner}/{repo}/git/refs

并发布数据:

{"ref":"refs\/head\/{dev-branch-name}","sha":"{sha-returned-from-previous-merge"}

我得到的回应是: { "message": "Reference already exists", "documentation_url": "https://developer.github.com/v3/git/refs/#create-a-reference" }

这让我没有新的开发分支。我的预感是从先前合并返回的 sha 不是我应该使用的 sha,但我找不到任何文档来解释我应该从哪里获取 sha 以创建新分支。据我所知,所需的 sha 应该是新分支应该从中分支的 ref 的那个,所以我希望将我的功能分支合并到默认(主)分支中产生的 sha 将是正确的一个。有谁知道我在这里错过了什么?

在此先感谢您的帮助!

-轴

4

0 回答 0