如何使用 markdown 在 gitlab CI 中使用 release API 中的文件进行描述

How to use markdown for description from a file in gitlab CI using release API

我在 gitlab-ci.yml 中使用 Gitlab 版本 API 以便能够在部署时自动创建新版本。

只需在文档中放入一个像 here 这样的 curl 请求就可以了。对于描述,文档声明允许降价,这很好。但是,我似乎无法弄清楚或想出从 curl 请求中的降价文件加载描述的想法。我已经尝试在 curl 之前将 markdown 文件的内容存储在 gitlab-ci.yml 中的一个变量中,然后将其传递并在 curl 中展开,如下所示:

# gitlab-ci.yml
...
- DESCRIPTION=`cat ./description.md`

并且还只是将 cat ./description.md 作为 "description".

的值放入 curl 请求本身

这是文档中的示例:

curl --header 'Content-Type: application/json' --header "PRIVATE-TOKEN: gDybLx3yrUK_HLp3qPjS" \
     --data '{ "name": "New release", "tag_name": "v0.3", "description": "Super nice release", "milestones": ["v1.0", "v1.0-rc"], "assets": { "links": [{ "name": "hoge", "url": "https://google.com" }] } }' \
     --request POST https://gitlab.example.com/api/v4/projects/24/releases

对于 "description" 键,我想将降价文件的内容作为值传递。

我很惊讶还没有找到 post 或对此进行讨论,所以我怀疑我遗漏了一些东西(非常 basic/obvious)或者人们并没有真正使用这个功能(还)?

任何帮助将不胜感激。

像你一样使用变量,这个.gitlab-ci.yml有效:

create_release:
    script:
      - DESCRIPTION=$(cat description.md)
      - |
        curl --silent --request POST --header "Content-Type:application/json" \ 
        --header "PRIVATE-TOKEN: TOKEN" \ 
        --data '{"name":"New release","tag_name":"v0.3", "description":"'"$DESCRIPTION"'","assets":{"links":[{"name":"hoge","url":"https://google.com"}]}}' \
        https://gitlab.bankassembly.com/api/v4/projects/369/releases

变量在双引号内展开(参见https://superuser.com/a/835589

我的内容示例 description.md :

## CHANGELOG\r\n\r\n- Escape label and milestone titles to prevent XSS in GFM autocomplete. !2740\r\n- Prevent private snippets from being embeddable.\r\n- Add subresources removal to member destroy service.