GoCD POST请求返回“找不到您请求的资源!”

时间:2018-03-21 08:40:28

标签: api go-cd

我有GoCD实例,希望使用GoCD API自动执行调度管道和检查管道状态等常规操作。

当我做GET请求时,它可以工作:

curl 'https://gocd.demo.kagarlickij.com/go/api/pipelines/frankenstein/status' \
 -u 'kagarlickij:Pa$$w0rd' | jq

enter image description here

..但是当我发出POST请求时,它会返回“您找不到的资源!”:

curl 'https://gocd.demo.kagarlickij.com/go/api/pipelines/frankenstein/pause' \
-u 'kagarlickij:Pa$$w0rd' \
-H 'Accept: application/vnd.go.cd.v1+json' -H 'Content-Type: application/json' \
-X POST -d '{"pause_cause": "Investigating build failures"}'  | jq  

enter image description here

..另一个POST示例:

curl 'https://gocd.demo.kagarlickij.com/go/api/pipelines/frankenstein/schedule' \
-u 'kagarlickij:P@$$w0rd' \
-H 'Accept: application/vnd.go.cd.v1+json' -H 'Content-Type: application/json' \
-X POST -d @gocd.json  | jq

json内容:

{
    "environment_variables": {},
    "materials": {},
    "update_materials_before_scheduling": false
}

enter image description here

有关如何使用API​​启动管道的任何想法?

2 个答案:

答案 0 :(得分:1)

一些GoCD API调用require 'Confirm': 'true'标头。 在你的情况下,你可以尝试像这样运行curl:

curl 'https://gocd.demo.kagarlickij.com/go/api/pipelines/frankenstein/pause' \ -u 'kagarlickij:Pa$$w0rd' \ -H 'Accept: application/vnd.go.cd.v1+json' \ -H 'Content-Type: application/json' \ -H 'Confirm: true' \ -X POST -d '{"pause_cause": "Investigating build failures"}' | jq

我可以为GoCD推荐我的lib yagocd,它可以解决版本不兼容问题,并且可以更轻松地使用GoCD API。

答案 1 :(得分:0)

答案结果很简单 - API动作需要GoCD v18.2.0,但我有v18.0.0

升级后API调用按预期工作