Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2019, 11:20   #1
polin11
Форумчанин
 
Регистрация: 07.06.2015
Сообщений: 164
По умолчанию Использование curl

Хочу написать скрипт на python, который удалит файл из удаленного репозитория gitlab (из определенной ветки).
Для начала решил ознакомиться с gitlab api. Есть документация https://docs.gitlab.com/ee/api/commi...es-and-actions
там есть пример для curl:
Код:
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 выполнить

Код:
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 указан верно, почему не удаляется файл?
polin11 вне форума Ответить с цитированием
Старый 22.01.2019, 12:38   #2
polin11
Форумчанин
 
Регистрация: 07.06.2015
Сообщений: 164
По умолчанию

попробовал вызвать с ключом -v
ответ такой:
HTTP/ 1.1 400 Bad request
connection #0 to host gitlab.com left intact
Видимо синтаксис запроса неверный, подозреваю проблема из-за информации --data, может быть в запросе нужно указать, что данные в формате JSON
polin11 вне форума Ответить с цитированием
Старый 22.01.2019, 19:26   #3
polin11
Форумчанин
 
Регистрация: 07.06.2015
Сообщений: 164
По умолчанию

Эмпирическим путем выяснил, если записать 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, который делает тоже самое…
polin11 вне форума Ответить с цитированием
Старый 31.01.2019, 02:35   #4
polin11
Форумчанин
 
Регистрация: 07.06.2015
Сообщений: 164
По умолчанию

Есть такой вопрос:
Есть 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 поясните причину
Изображения
Тип файла: jpg gitlab_changes.jpg (19.5 Кб, 132 просмотров)
polin11 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Авторизация на сайте с использование curl CodeNOT PHP 0 04.05.2015 18:31
Curl error: with the SSL CA cert (php + curl + ssl) Hell Knight PHP 1 27.12.2014 14:30
CURL в C++ XeNon_9_9 Общие вопросы C/C++ 3 20.10.2014 23:16
CURL gofkane PHP 2 29.08.2011 14:53
curl + js topsecretx PHP 0 18.05.2009 21:23