Latest posts on применение curl topichttps://python.su/forum/topic/36635/2019-01-31T01:30:24+02:00Разное :: Флейм :: применение curl
2019-01-31T01:30:24+02:00polin11198850Есть такой вопрос:<br/>Есть 2 ветки, назовем их Branch1 и Branch2, Branch2 создана на основе Branch1.<br/>При помощи gitlab api, создаю на основе ветки Branch1 новую ветку Branch1_new пушу туда некоторые изменения. <br/>Если создаю мерж реквест (пытаюсь смержить) ветку Branch1_new в Branch2 (раздел Changes заполнен) изменения появляются в Branch2.<br/>Если создаю мерж реквест (пытаюсь смержить) ветку Branch1_new в Branch1 (раздел Changes заполнен) изменения появляются в Branch1.<br/>Но когда делаю подряд 2 мерж реквеста, ветку Branch1_new в Branch1 и в Branch2, то изменения отображаются только в Branch1 (раздел Changes заполнен) . В мерже в Branch2 нет никаких изменений (раздел Changes пустой), почему не могу понять?<br/>Пользователи, которые часто пользуются gitlab поясните причину
Разное :: Флейм :: применение curl
2019-01-22T18:21:31+02:00polin11198709Эмпирическим путем выяснил, если записать JSON в файл (например 1.json), то такой запрос прекрасно работает <br/><div class="code"><pre> <span class="nx">curl</span> <span class="o">--</span><span class="nx">request</span> <span class="nx">POST</span> <span class="o">--</span><span class="nx">header</span> <span class="s2">"PRIVATE-TOKEN: ***"</span> <span class="o">--</span><span class="nx">header</span> <span class="s2">"Content-Type: application/json"</span> <span class="o">--</span><span class="nx">data</span> <span class="s2">"@1.json"</span> <span class="nx">https</span><span class="o">:</span><span class="c1">//gitlab.com/api/v4/projects/1/repository/commits</span>
</pre></div><br/>Для полного счастья, осталось написать скрип на python, наверно при помощи библиотеки requests или urllib, который делает тоже самое…
Разное :: Флейм :: применение curl
2019-01-22T15:02:06+02:00py.user.next198708Дальше получи этот файл через curl<br/><a href="https://docs.gitlab.com/ee/api/repository_files.html#get-file-from-repository">https://docs.gitlab.com/ee/api/repository_files.html#get-file-from-repository</a><br/><br/>Дальше удали файл основным способом через curl<br/><a href="https://docs.gitlab.com/ee/api/repository_files.html#delete-existing-file-in-repository">https://docs.gitlab.com/ee/api/repository_files.html#delete-existing-file-in-repository</a><br/><br/>Если не удаляется, создай второй файл, закоммить его и удали этот второй файл.
Разное :: Флейм :: применение curl
2019-01-22T14:18:26+02:00polin11198707Работает, приходит информация о коммите<br/>curl -v –header “PRIVATE-TOKEN: ***” <a href="https://gitlab.com/api/v4/projects/1/repository/commits/76acf22">https://gitlab.com/api/v4/projects/1/repository/commits/76acf22</a><br/>Работает, делает реверт коммита<br/>curl -v –request POST –header “PRIVATE-TOKEN: ***” –form “branch=my_branch” <a href="https://gitlab.com/api/v4/projects/1/repository/commits/76acf22/revert">https://gitlab.com/api/v4/projects/1/repository/commits/76acf22/revert</a>
Разное :: Флейм :: применение curl
2019-01-22T13:23:29+02:00py.user.next198706Запроси просто коммит через curl для начала.
Разное :: Флейм :: применение curl
2019-01-22T11:37:29+02:00polin11198705попробовал вызвать с ключом -v<br/>ответ такой:<br/>HTTP/ 1.1 400 Bad request<br/>connection #0 to host <a href="http://gitlab.com" rel="nofollow">gitlab.com</a> left intact<br/>Видимо синтаксис запроса неверный, подозреваю проблема из-за информации –data, может быть в запросе нужно указать, что данные в формате JSON
Разное :: Флейм :: применение curl
2019-01-22T09:58:37+02:00polin11198704я хочу понять как это работает через curl, затем самостоятельно на python напишу скрипт при помощи библиотеки requests. Надеюсь, что большинство питонистов часто работают с curl и gitlab и смогут подсказать пути решения
Разное :: Флейм :: применение curl
2019-01-22T06:51:40+02:00JOHN_16198702и где тут вопрос про питон?
Разное :: Флейм :: применение curl
2019-01-22T03:43:51+02:00polin11198701Хочу написать скрипт на python, который удалит файл из удаленного репозитория gitlab (из определенной ветки).<br/>Для начала решил ознакомиться с gitlab api. Есть документация <a href="https://docs.gitlab.com/ee/api/commits.html#create-a-commit-with-multiple-files-and-actions">https://docs.gitlab.com/ee/api/commits.html#create-a-commit-with-multiple-files-and-actions</a><br/>там есть пример для curl:<br/><div class="code"><pre> <span class="nx">PAYLOAD</span><span class="o">=</span><span class="nx">$</span><span class="p">(</span><span class="nx">cat</span> <span class="o"><<</span> <span class="s1">'JSON'</span>
<span class="p">{</span>
<span class="s2">"branch"</span><span class="o">:</span> <span class="s2">"master"</span><span class="p">,</span>
<span class="s2">"commit_message"</span><span class="o">:</span> <span class="s2">"some commit message"</span><span class="p">,</span>
<span class="s2">"actions"</span><span class="o">:</span> <span class="p">[</span>
<span class="p">{</span>
<span class="s2">"action"</span><span class="o">:</span> <span class="s2">"create"</span><span class="p">,</span>
<span class="s2">"file_path"</span><span class="o">:</span> <span class="s2">"foo/bar"</span><span class="p">,</span>
<span class="s2">"content"</span><span class="o">:</span> <span class="s2">"some content"</span>
<span class="p">},</span>
<span class="p">{</span>
<span class="s2">"action"</span><span class="o">:</span> <span class="s2">"delete"</span><span class="p">,</span>
<span class="s2">"file_path"</span><span class="o">:</span> <span class="s2">"foo/bar2"</span>
<span class="p">},</span>
<span class="p">{</span>
<span class="s2">"action"</span><span class="o">:</span> <span class="s2">"move"</span><span class="p">,</span>
<span class="s2">"file_path"</span><span class="o">:</span> <span class="s2">"foo/bar3"</span><span class="p">,</span>
<span class="s2">"previous_path"</span><span class="o">:</span> <span class="s2">"foo/bar4"</span><span class="p">,</span>
<span class="s2">"content"</span><span class="o">:</span> <span class="s2">"some content"</span>
<span class="p">},</span>
<span class="p">{</span>
<span class="s2">"action"</span><span class="o">:</span> <span class="s2">"update"</span><span class="p">,</span>
<span class="s2">"file_path"</span><span class="o">:</span> <span class="s2">"foo/bar5"</span><span class="p">,</span>
<span class="s2">"content"</span><span class="o">:</span> <span class="s2">"new content"</span>
<span class="p">},</span>
<span class="p">{</span>
<span class="s2">"action"</span><span class="o">:</span> <span class="s2">"chmod"</span><span class="p">,</span>
<span class="s2">"file_path"</span><span class="o">:</span> <span class="s2">"foo/bar5"</span><span class="p">,</span>
<span class="s2">"execute_filemode"</span><span class="o">:</span> <span class="kc">true</span>
<span class="p">}</span>
<span class="p">]</span>
<span class="p">}</span>
<span class="nx">JSON</span>
<span class="p">)</span>
<span class="nx">curl</span> <span class="o">--</span><span class="nx">request</span> <span class="nx">POST</span> <span class="o">--</span><span class="nx">header</span> <span class="s2">"PRIVATE-TOKEN: <your_access_token>"</span> <span class="o">--</span><span class="nx">header</span> <span class="s2">"Content-Type: application/json"</span> <span class="o">--</span><span class="nx">data</span> <span class="s2">"$PAYLOAD"</span> <span class="nx">https</span><span class="o">:</span><span class="c1">//gitlab.example.com/api/v4/projects/1/repository/commits </span>
</pre></div>Пытаюсь через curl выполнить<br/><br/><div class="code"><pre> <span class="nx">curl</span> <span class="o">--</span><span class="nx">request</span> <span class="nx">POST</span> <span class="o">--</span><span class="nx">header</span> <span class="s2">"PRIVATE-TOKEN: ***"</span> <span class="o">--</span><span class="nx">header</span> <span class="s2">"Content-Type: application/json"</span> <span class="o">--</span><span class="nx">data</span> <span class="s1">'{"branch":"my_branch","commit_message":"message","actions":[{"action":"delete","file_path":"README.md"}]}'</span> <span class="nx">https</span><span class="o">:</span><span class="c1">//gitlab.com/api/v4/projects/1/repository/commits</span>
</pre></div>никакое сообщение с ошибкой не падает, но файл README.md не удаляется, проверял PRIVATE-TOKEN -указан верно, ветка my_branch существует,<br/>в url id проекта указан верно, почему не удаляется файл?