Github 企业 API merge 后删除分支

标签 git curl github github-api

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

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 成功,也可以自动 merge :

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

到目前为止一切顺利...但是我无法在成功 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"
}

从我的角度来看,该 URL 没问题。在浏览器中打开,我得到一些不错的 JSON 行。 我的想法是,这次我不需要 JSON 数据,因为我不想修补或创建某些东西,而是“只”删除它。我对吗?这里还有什么可能遗漏?

最佳答案

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

关于Github 企业 API merge 后删除分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47455942/

相关文章:

windows - git编辑我的文件

git - 使用 Git url (git ://github. com/...) 将源附加到 IntelliJ 项目

php - 如何使用 php 代理转发请求的多部分/表单数据主体

java - HTTPClient代码中的CURL命令

php - 如何在 php 中使用 curl 通过 mongolab rest api 创建 Web 服务以进行基本数据库操作?

git - 我必须为每台计算机生成 SSH key ,还是复制 `~/.ssh` 目录的内容就足够了?

git - 在 GitHub 中将 PR merge +压缩到 master 之后如何同步你的 git dev 分支?

Git merge 错误

git - 使用 GIT 忽略文件夹中文件的最佳实践

linux - Vscode 集成终端与 Linux 终端与 git 的工作方式不同