Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
1 / 1 / 1
Регистрация: 24.03.2013
Сообщений: 171
1

Использование curl

22.01.2019, 11:16. Показов 2366. Ответов 7
Метки curl (Все метки)

Author24 — интернет-сервис помощи студентам
Хочу написать скрипт на python, который удалит файл из удаленного репозитория gitlab (из определенной ветки).
Для начала решил ознакомиться с gitlab api. Есть докуемнтация https://docs.gitlab.com/ee/api... nd-actions
там есть пример для curl:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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
1
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 указан верно, почему не удаляется файл?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.01.2019, 11:16
Ответы с готовыми решениями:

использование CURL
Нужно с сервера достать некую информацию. Рационально ли использовать CURL? приложение должно...

Использование прокси Curl
Здравствуйте. Использую libcurl: https://curl.haxx.se/libcurl/c/libcurl.html Зависает программа...

Использование CURL для считывания информации из дивов
Хочу попробовать написать самостоятельно скрипт, ибо очень нужен, который будет считывать...

Ошибка Invalid argument supplied for foreach при использование cURL
Выдает ошибку - Invalid argument supplied for foreach. Ругается на foreach, хотя я перед этой...

7
Эксперт Python
4634 / 2052 / 361
Регистрация: 17.03.2012
Сообщений: 10,134
Записей в блоге: 6
22.01.2019, 11:33 2
А что в ответе?
0
1 / 1 / 1
Регистрация: 24.03.2013
Сообщений: 171
22.01.2019, 12:36  [ТС] 3
А как посмотреть, узнать ответ?

Добавлено через 47 минут
попробовал вызвать с ключом -v
ответ такой:
HTTP/ 1.1 400 Bad request
connection #0 to host gitlab.com left intact
Видимо синтаксис запроса неверный, подозреваю проблема из-за информации --data, может быть в запросе нужно указать, что данные в формате JSON
0
Эксперт Python
4634 / 2052 / 361
Регистрация: 17.03.2012
Сообщений: 10,134
Записей в блоге: 6
22.01.2019, 13:29 4
Вроде, в command line апострофы не используются (в качестве кавычек). Это не питон, всё-таки.
0
1 / 1 / 1
Регистрация: 24.03.2013
Сообщений: 171
22.01.2019, 19:26  [ТС] 5
Эмпирическим путем выяснил, если записать JSON в файл (например 1.json), то такой запрос прекрасно работает

Javascript
1
 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, который делает тоже самое…
0
Эксперт Python
4634 / 2052 / 361
Регистрация: 17.03.2012
Сообщений: 10,134
Записей в блоге: 6
23.01.2019, 10:50 6
Можно и без файла, экранированием кавычек.
\"
0
1 / 1 / 1
Регистрация: 24.03.2013
Сообщений: 171
31.01.2019, 02:33  [ТС] 7
Есть такой вопрос:
Есть 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 поясните причину
Миниатюры
Использование curl  
0
Эксперт Python
4634 / 2052 / 361
Регистрация: 17.03.2012
Сообщений: 10,134
Записей в блоге: 6
31.01.2019, 10:35 8
Во-первых, на новый вопрос принято создавать новую тему. Во-вторых, ваш вопрос, скорее, сюда https://www.cyberforum.ru/version-control/ . Питон тут не при чём.
0
31.01.2019, 10:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.01.2019, 10:35
Помогаю со студенческими работами здесь

Авторизация curl (различие между curl и ajax запросами)
Есть ли различие в передаче данных в json формате через curl и ajax? Я хочу написать запрос,...

curl неразрешенный внешний символ __imp_curl_easy_cleanup.curl
Привет. Сбилдил, закинул файлы curl в проект, подключил: #include &quot;curl\curl.h&quot; Запустил...

Curl команду превратить в php curl
команда: curl -s -F widget=$WIDGET -F secret=$SECRET -F amouser=$AMOUSER -F amohash=$AMOHASH -F...

Curl not a valid cUrl на windows
Есть такая функция. private function curl_send($url) { ob_start(); $ch = curl_init($url);...

Ускорение curl'a (multi curl)
Здравствуйте! В PHP я полный чайник, абы как сделал страницу с множеству запросами curla, где на...

Эквивалент консольной команды curl -T filename.txt на PHP (imap, curl, php)
Подскажите пожалуйста, как правильно записать эквивалент консольной команде на PHP. Команда: curl...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru