GoCD 通过 API returns "The resource you requested was not found!" 取消阶段

GoCD cancel stage thru API returns "The resource you requested was not found!"

我想取消当前 运行ning 阶段 运行:

curl "http://go.com/go/api/stages/lab2018.AllTests/183/HarnessSelfTests/1/cancel" -X POST -H 'X-GoCD-Confirm: true' -u "user:password" -H 'Accept: application/vnd.go.cd.v4+json' |  json_pp

基本上,我已经尝试了两个不同版本的请求,但都不起作用。

curl "http://go.com/go/api/stages/lab2018.AllTests/HarnessSelfTests/cancel" -X POST -H 'Confirm: true' -u "user:password" -H 'Accept: application/vnd.go.cd.v4+json' |  json_pp

我得到了:

{
   "message" : "The resource you requested was not found!"
}

与此同时,如果我 运行 'Get stage Instance' 使用相同的参数:

curl "http://go.com/go/api/stages/lab2018.AllTests/HarnessSelfTests/instance/183/1" -X GET -u "user:password" 'Accept: application/vnd.go.cd.v4+json' |  json_pp

我得到了正确的 JSON,其中包含有关所请求实例的信息。

GoCD 版本为 Go 版本:18.10.0 (7703-42d1cbe661161b5400289ead86c0447c84af8c0a)。

GoCD 文档说 Available since v14.3.0

任何可能导致错误的建议?有什么想法可以调试问题吗?

好的,问题出在 'Accept: application/vnd.go.cd.v4+json' header 上。对于低于 19.8.0 的版本,不应使用此 header。如果你使用它,它会中断通话。正确 API 调用:

curl "http://go.com/go/api/stages/lab2018.AllTests/HarnessSelfTests/cancel" -X POST -H 'Confirm: true' -u "user:password"