у меня есть 4 репозитория в GitLab с именами Repo1, Repo2, Repo3 и Repo4
теперь, как я могу создать тег v1.0 для всей основной ветки репо, используя API GitLab?
Используя POST /projects/:id/repository/tags создайте новый API тегов, вызов будет таким:
curl -X POST "https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/repository/tags?tag_name=v1.0&ref=master&release_description='a short description'&private_token=${GITLAB_TOKEN}"
Замените CI_PROJECT_ID
на идентификатор вашего проекта GitLab.
Как показано в gitlab-org/gitlab issue 119136, это работает только для краткого однострочного описания тега.
Это создает легкий тег.
Для аннотированного тега потребуется параметр &message='...'
.
Вы можете увидеть альтернативный вызов здесь.
После обсуждения ОП подтверждает:
curl -X POST "http://198.x.y.z/api/v4/projects/2345/repository/tags?tag_name=v1.0&ref=master&release_description='first%20tag'&private_token=**************"
(замена любого пробела на %20
в описании релиза) работает.
работает, но показывает
{"tag_name":"v1.5","description":"'first tag'"},"protected":false}
Могу ли я сделать это защищенным как истинное?
Для этого потребуется еще один вызов API .
Пример:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/protected_tags?name=*-stable&create_access_level=30"
С:
create_access_level
: уровни доступа, разрешенные для создания (по умолчанию: 40
, уровень доступа сопровождающего)
полноценный тег — это не что иное, как аннотированный тег, который включает сообщение тега, в то время как облегченный тег не включает сообщение тега и может быть извлечен или отправлен
@kiran Команда, которую я упоминаю в ответе, предназначена для облегченного тега: я отредактировал ответ, чтобы сделать его более ясным.
я пробовал это, но не работает, можете ли вы написать пример запятой
@kiran Можете ли вы проверить альтернативный вызов, который я упоминаю в ответе (stackoverflow.com/a/38272865/6309). Кроме того, есть ли какое-либо сообщение об ошибке. Вы используете правильный идентификатор проекта?
Да, есть сообщение об ошибке "400 Bad Request"
Давайте продолжим обсуждение в чате.
я использую правильный идентификатор проекта и URL-адрес проекта
@kiran Идентификатор проекта GitLab. Я отредактировал ответ, чтобы добавить ссылку, объясняющую, как найти идентификатор вашего проекта GitLab.