Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Using JSON in pipeline YAML script

Seb Duggan November 13, 2017

As part of my deployment pipeline, I'm trying to notify Sentry via a webhook of the latest release number. This should be very simple to achieve using curl, but it doesn't seem to work properly...

Here is a simplified version of my YAML:

pipelines:
tags:
v[0-9]*:
- step:
script:
- echo $BITBUCKET_TAG
- "curl $SENTRY_WEBHOOK -X POST -H 'Content-Type: application/json' -d '{\"version\":\"$BITBUCKET_TAG\"}'"

 ...where SENTRY_WEBHOOK is an environmental variable with the URL of the webhook.

Note that the curl script has to be surrounded by double quotes in YAML, as it contains colons which would otherwise break it.

The echo command displays the tag, so I know that is being passed through OK to the pipeline. However, the curl command only partially works:

The webhook URL is successfully substituted, so it gets sent through to my Sentry account, but the tag is not substituted, so the actual JSON that is posted to Sentry is:

{ "version":"$BITBUCKET_TAG" }

Is this a bug, or is it me just getting my YAML syntax wrong?

1 answer

0 votes
Björn Göransson May 9, 2019

I realize this post is very old, but for the record, colons without spaces are not parsed as YAML separators. So 'Content-Type:application....... would work.

Now you can remove the quotes around the whole command.

Then, the correct way to format your JSON would be: "{\"version\":\"$BITBUCKET_TAG\"}"

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events