我有GoCD实例,希望使用GoCD API自动执行调度管道和检查管道状态等常规操作。
当我做GET请求时,它可以工作:
curl 'https://gocd.demo.kagarlickij.com/go/api/pipelines/frankenstein/status' \
-u 'kagarlickij:Pa$$w0rd' | jq
..但是当我发出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
..另一个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
}
有关如何使用API启动管道的任何想法?
答案 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调用按预期工作