jq
なしでやろうとするとエスケープとか難しいので。
REQUEST_BODY=`jq \
--null-input \
--monochrome-output \
--compact-output \
--arg pull_request_body "Hey yo!" \
'{title: "Title", head: "feature", base: "master", body: $pull_request_body}'`
curl https://api.example.com -d "${REQUEST_BODY}" -H "Content-type: application/json"