Search code examples
apigo-cd

GoCD POST requests return "The resource you requested was not found!"


I have GoCD instance and want to automate regular actions like scheduling pipelines and checking pipelines statuses using GoCD API.

When I do GET request it works:

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

enter image description here

..but when I do POST request it returns "The resource you requested was not found!":

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

..another POST example:

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 content:

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

enter image description here

Any ideas how pipelines could be started using API?


Solution

  • The answer turned out to be very simple - that API actions require GoCD v18.2.0 but I had v18.0.0

    After upgrade API calls work as expected