Create tag in GitlabCI via API with complex release_description

Summary

I'm trying to create a tag with gitlab CI using API. If I run something like this curl -X POST "https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/repository/tags?tag_name=${CI_COMMIT_SHORT_SHA}&ref=master&release_description=${CI_COMMIT_SHORT_SHA}&private_token=${GITLAB_TOKEN}" the tag is being created.

But I want to create a tag with some complex release_description of it. In UI I can do that with multiple lines and use .md format (called Release notes in there) When I try to do something like this and there are some spaces in {CI_COMMIT_TITLE} `curl -X POST "https://gitlab.com/api/v4/projects/{CI_PROJECT_ID}/repository/tags?tag_name={CI_COMMIT_SHORT_SHA}&ref=master&release_description={CI_COMMIT_TITLE}&private_token=${GITLAB_TOKEN}"It fails with400 Bad request`

I also tried to use the file instead of env var &release_description=$(cat test.txt). Got the same

Is it possible to use some complex release_description through the API instead of simple one-line-without-spaces?

Edited by Taras Katrichenko