Как использовать уценку для описания из файла в gitlab CI, используя релиз API - PullRequest
0 голосов
/ 04 ноября 2019

Я использую API релиза Gitlab в gitlab-ci.yml, чтобы иметь возможность автоматически создавать новый релиз при развертывании.

Простое размещение запроса скручивания, например здесь , в документах работает просто отлично. Для описания, документы утверждают, что уценка разрешена, и это здорово. Тем не менее, я не могу понять или придумать идею загрузить описание из файла уценки в запросе curl. Я уже пытался сохранить содержимое файла уценки в переменной в gitlab-ci.yml до curl, а затем передать его и развернуть в рамках curl следующим образом:

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

, а такжепросто поставить cat ./description.md в самом запросе curl в качестве значения "description".

Вот пример из документации:

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"Я хотел бы передать содержимое файла уценки в качестве значения.

Я был удивлен, что уже не нашел сообщения или обсуждения по этому поводу, поэтому я подозреваю, что я либо что-то упустил (очень простой / очевидный) или люди на самом деле не используют эту функцию (пока)?

Любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 04 ноября 2019

Используя такую ​​переменную, как вы, эта .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.
...