合并后的Github企业API删除分支

时间:2017-11-23 12:47:53

标签: git curl github github-api

我目前正在使用Github API(在企业版上)。经过一些试验和错误后,我能够使用curl -X POST更改拉取请求的状态:

curl -u <token>:x-oauth-basic --header "Content-Type: application/json" -X POST --data "{\"state\":\"success\",\"target_url\":\"%BUILD_URL%\",\"description\":\"my description\",\"context\":\"continuous-integration/mycontext\"}" http://<server>/api/v3/repos/<myuserid>/<myreponame>/statuses/%COMMIT_SHA%

并且如果使用curl -X PUT成功,则自动合并:

curl -u <token>:x-oauth-basic --header "Content-Type: application/json" -X PUT --data "{\"state\":\"merged\",\"commit_title\":\"automatic merge\",\"commit_message\":\"automatic merge\",\"sha\":\"%COMMIT_SHA%\",\"merge_method\":\"merge\"}" http://<server>/api/v3/repos/<myuserid>/<myreponame>/pulls/%PullRequest%/merge

到目前为止很好......但是在成功合并后我无法删除分支。我想使用Github API,因为控制它的Jenkins作业不知道有关存储库或其分支的事情。

我尝试了以下内容:

curl -u <token>:x-oauth-basic -X DELETE http://<server>/api/v3/repos/<myuserid>/<myreponame>/git/refs/heads/develop

它返回:

{
  "message": "Not Found",
  "documentation_url": "https://developer.github.com/enterprise/2.11/v3/git/refs/#update-a-reference"
}

从我的角度来看,网址很好。在浏览器中打开,我得到了一些不错的JSON行。 我的想法是,这次我不需要JSON数据,因为我不想修补或创建一些东西,而只是&#34;只有&#34;删除它。我对吗?还有什么可能会错过这里?

1 个答案:

答案 0 :(得分:1)

其实我的解决方案是正确的。我只有一个愚蠢的问题:授权用户在我的fork上没有协作者,因此不允许删除分支。 恕我直言,这应该添加到文档中,因为它说如果找不到引用它只会给出404错误。