drone-node icon indicating copy to clipboard operation
drone-node copied to clipboard

Promoting builds does not pass parameters

Open lennym opened this issue 4 years ago • 4 comments

If I use the client.promoteBuild method with parameters then these are not available when the build executes.

It appears the root cause of this is that code at https://github.com/drone/drone-node/blob/master/lib/index.js#L331-L339 passes the parameters as part of the POST body, but the server expects them in the querystring (based on my reading of https://docs.drone.io/api/builds/build_promote/)

I tried making the same requests with curl to validate this and if the params are sent in the query string then they appear correctly.

I would make this change myself since it should be fairly simple, but I don't know the API well enough to know which other methods are affected (I suspect there may be several).

lennym avatar Aug 25 '20 15:08 lennym

I have created a small - but probably incomplete - pull request at https://github.com/drone/drone-node/pull/21

lennym avatar Aug 25 '20 15:08 lennym

Are you sure about that? Not sure if I tested parameters, but I'm pretty sure the promote/rollback was only working like I built it.

tboerger avatar Aug 28 '20 06:08 tboerger

I published a forked version which I've been using for our real-world deployments, so fairly sure.

It's also consistent with the documentation I linked above which instructs to pass parameters via query string.

lennym avatar Aug 28 '20 07:08 lennym

For what it's worth, I think passing build parameters in the request body would be far better given their likelihood to contain sensitive data.

lennym avatar Aug 28 '20 07:08 lennym