Хочу написать скрипт, который удалит файл из удаленного репозитория gitlab (из определенной ветки). Для начала решил ознакомиться с gitlab api. Есть документация https://docs.gitlab.com/ee/api/commits.html#create-a-commit-with-multiple-files-and-actions там есть пример для curl: Код (Javascript): PAYLOAD=$(cat << 'JSON' { "branch": "master", "commit_message": "some commit message", "actions": [ { "action": "create", "file_path": "foo/bar", "content": "some content" }, { "action": "delete", "file_path": "foo/bar2" }, { "action": "move", "file_path": "foo/bar3", "previous_path": "foo/bar4", "content": "some content" }, { "action": "update", "file_path": "foo/bar5", "content": "new content" }, { "action": "chmod", "file_path": "foo/bar5", "execute_filemode": true } ] } JSON ) curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --header "Content-Type: application/json" --data "$PAYLOAD" https://gitlab.example.com/api/v4/projects/1/repository/commits Пытаюсь через curl выполнить Код (Javascript): curl --request POST --header "PRIVATE-TOKEN: ***" --header "Content-Type: application/json" --data '{"branch":"my_branch","commit_message":"message","actions":[{"action":"delete","file_path":"README.md"}]}' https://gitlab.com/api/v4/projects/1/repository/commits никакое сообщение с ошибкой не падает, но файл README.md не удаляется, проверял PRIVATE-TOKEN -указан верно, ветка my_branch существует, id проекта bp url указан верно, почему не удаляется файл?
попробовал вызвать с ключом -v ответ такой: HTTP/ 1.1 400 Bad request connection #0 to host gitlab.com left intact Видимо синтаксис запроса неверный, подозреваю проблема из-за информации --data, может быть в запросе нужно указать, что данные в формате JSON
Эмпирическим путем выяснил, если записать JSON в файл (например 1.json), то такой запрос прекрасно работает curl --request POST --header "PRIVATE-TOKEN: ***" --header "Content-Type: application/json" --data "@1.json" https://gitlab.com/api/v4/projects/1/repository/commits Для полного счастья, осталось написать скрип на python, наверно при помощи библиотеки requests или urllib, который делает тоже самое…
Есть такой вопрос: Есть 2 ветки, назовем их Branch1 и Branch2, Branch2 создана на основе Branch1. При помощи gitlab api, создаю на основе ветки Branch1 новую ветку Branch1_new пушу туда некоторые изменения. Если создаю мерж реквест (пытаюсь смержить) ветку Branch1_new в Branch2 (раздел Changes заполнен) изменения появляются в Branch2. Если создаю мерж реквест (пытаюсь смержить) ветку Branch1_new в Branch1 (раздел Changes заполнен) изменения появляются в Branch1. Но когда делаю подряд 2 мерж реквеста, ветку Branch1_new в Branch1 и в Branch2, то изменения отображаются только в Branch1 (раздел Changes заполнен) . В мерже в Branch2 нет никаких изменений (раздел Changes пустой), почему не могу понять? Пользователи, которые часто пользуются gitlab поясните причину