我目前正在使用 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"
}
从我的角度来看,该 URL 很好。在浏览器中打开我得到一些不错的 JSON 行。
我的想法是,这次我不需要 JSON 数据,因为我不想修补或创建某些内容,而是“仅”删除它。我对吗?这里还可能错过什么?