我正在使用php,curl和GitHub API尝试一些git自动化。我首先将一个功能分支合并到默认(主)分支中,方法是创建一个拉取请求,然后合并该拉取请求(全部通过api)。
到目前为止一切顺利。我从拉请求合并中得到的响应是sha值,merged = true和message ='拉请求成功合并'。
接下来,我使用GitHub API删除我的dev分支。这项行动也很成功。在执行的这一点上,当查看github.com UI的“所有分支”列表时,GitHub上不再存在dev分支。
最后,我尝试使用pull请求返回的sha将功能分支合并到master分支中,以使用端点创建一个新的dev分支(根据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"
}
这让我没有新的dev分支。我的预感是从上一次合并返回的sha不是我应该使用的sha,但是我找不到任何文档来解释我应该从哪里获取用于创建新分支的sha。据我所知,所需的sha应该是新分支应该分支的ref,因此我希望将我的功能分支合并到默认(主)分支中产生的sha将是适当的。有谁知道我在这里错过了什么?
提前感谢您的帮助!
-axl