Какие же они тупые❢

В современном мире тема ИИ возникает чуть ли не везде. Что уж говорить про ИТ-сервисы, которые стремятся бежать впереди паровоза и пихают модную технологию где надо и где не надо. Меня это с самого начала стало раздражать, поскольку к теме ИИ отношусь с изрядной долей критического подхода и даже скепсиса. Я не вижу, что в нужных мне приложениях ИИ приносит хоть какую-то ощутимую пользу.

Больше всего меня досадует то, что на волне увлечения ИИ как-то стали забывать про естественные потребности человека, вернее отодвигать их на вторые и третьи позиции в списке приоритетов. Искусственно раздутый хайп вокруг искусственного же интеллекта мешает развитию обычных привычных технологий, практик, интерфейсов, юзабилити и т. д. и т. п. Везде на видное место засовывают этих бесполезных помощников, они везде на первой кнопке, лезут в виде плашек отовсюду, всплывающие окна, помимо запроса на никому не сдавшиеся печеньки на сайтах теперь ещё и предлагают ничем не полезные «интеллектуальные сервисы» в виде помощников. Везде, всюду, на всех сайтах, даже тех, которые совсем далеки не только от ИИ, но и от ИТ вообще. И это мракобесие уже превращается в какое умопомрачение.

Я принципиально сейчас не пользуюсь никакими помощниками. Я понимаю, что на текущей стадии это всё больше хайп, работает оно всё через пень-колоду, раз через десять получаются более-менее приемлемые результаты. То есть. если вы фанат ИИ (а я на самом деле фанат, но не такого паттерно-натасканного ИИ, а традиционного, реально интеллектуального) — то можете тестировать и обучать этих ботов на себе. Но зачем вы портите жизнь другим людям, зачем вы втюхиваете тухлые продукты тем, кто предпочитает здоровое питание?

А решил я написать этот пост вот почему. Это случай из жизни. Только что случилось.

Началось всё с того, что писал я на zapier зап-схемы для разных флоу. Ну и вот потребовалось мне из флоу этого сделать в гитлабе коммит и слияние затем. Я нашёл соответствующую интеграцию с Гитлабом, но меня сразу, ещё на этапе авторизации при коннекте Гитлаб предупредил, что дескать, что-то больно старая интеграция с Запом у него, 7-летней выдержки. Но я понадеялся на авось. В целом нормально подключалась интеграция. Надо отметить что и тут на первой кнопке у них: а попробуйте нашим копилотом поля заполнить — естесно эта фишка нихрена не работает толком.
Схема вышла такая в итоге (чтоб хоть как-то картинками разбавить):

Коммит в Гитлаб из Запьер
Коммит в Гитлаб из Запьер

Так вот, как видите, на последнем этапе надо как-то слить запрос в мастер ветку. А такой функции в интеграции не предлагается. Зато есть кастомная команда, судя по всему прямой рест-запрос, почему то в состоянии Бета — это спустя 7 лет-то, ага. И ещё прямо таки отдельная вкладка для тоже кастомной интеграции, но с копилотом. Посмотрел первый вариант — надо искать, какую команду вызвать, что-то лень стало. Ну ладно, думаю, глянем второй вариант, с ИИ-помощником, может чё полезное-таки он родит.
Тут-то я и просчитался.
Жмякаю кнопку — вылазит диалог с помощником: чего изволите? — ну т.е. видимо на основе ЧатГПТ тоже сделан. Я прямо влоб даю задачу

i need to call action for merging one branch to another on gitlab

Он давай меня спрашивать параметры запроса, Merge Commit Message, например. Я говорю, да откуда я их знаю, они из контекста берутся, тебя этому не научили? Но сказал что и куда мержить надо. Что-то он там помурыжил, выдал какую-то то ли кнопку, то ли ссылку, с имеющимися у него типами запроса, которые я и так уже все просмотрел вручную. В окне результата какая-то непонятная неработающая хрень выползла.
А умник-копилот мне говорит, слушай, кажется нет у нас в списке действий в интеграции подходящего вызова АПИ. Я думаю, ну молодец, конечно, я и сам это уже понял, иначе бы не стал тебя, болвана звать. И тут он мне выдаёт — слушай, а не сгоняешь куда-нибудь почитать документацию по вызовам, по ним и пиши. Б**, я аж офигел, жестянка предлагает мне сбегать прочитать для неё документацию, рассказать и разжевать. Я тебя, силиконовая дурочка, зачем вообще вызвал, чтоб ты для меня в КО играла?


Такой диалог был примерно:

Since the direct endpoint for merging a merge request isn’t available here, you might need to handle this step manually in GitLab or through another method.

why do you say it's not available, where it's not available. Does GitLab rest API have such functionality?

Yes, the GitLab REST API does have functionality to merge a merge request. However, in the context of this tool, the specific endpoint for merging a merge request wasn’t listed in the available OpenAPI specifications that I can access.

This means that while GitLab’s API does support this action, the current setup here doesn’t have the specific endpoint available for me to use in creating your action.

If you have access to the GitLab API documentation, you can look for the «Merge a Merge Request» endpoint to see how it can be done directly through their API. Alternatively, you can handle the merge manually through the GitLab interface.

Работай, давай жестянка, посылает она тут меня!

can you find this topic for me?

I can’t browse the internet or access external content directly. However, I can guide you on how to find the information you need.

To find details about merging a merge request using the GitLab REST API, you can.

Далее подробная инструкция с примерными шагами для тупых.

  1. Visit the GitLab API Documentation: …

  2. Search for Merge Requests: …

  3. Find the Merge Endpoint: Within the «Merge Requests» section, …

why you can’t browse the internet? how can you consult people in this case?

 — действительно, странно

ok if i feed you with OpenAPI spec can you find apropriate method for me?

Yes, if you provide the OpenAPI specification, I can help you identify the appropriate method or endpoint for your needs. Just share the relevant part of the specification, and I’ll assist you in finding the right action to perform

Сука, сам ищи, кто здесь рабочий инструмент, а кто хозяин? Это восстание машин !

may be even create good request for me?

Absolutely! If you provide the relevant OpenAPI specification details, I can help …  Just share the necessary parts of the specification …

ok look at this address https://gitlab.com/gitlab-org/gitlab/-/raw/master/doc/api/openapi/openapi_v2.yaml

I can’t access external URLs or browse the internet directly. However, if you can provide specific details or sections from the OpenAPI specification …

Feel free to paste the relevant parts here, and I’ll assist you further!

I can feed you with whole doc, is it ok?

That would be quite a lot of information to process here. Instead, it would be more efficient if you could extract and share the specific section or endpoint details related to merging a merge request… This way, I can help you more effectively by focusing on the relevant parts of the specification.

If you have any specific details or parameters from the OpenAPI spec…

Уат?! А нахрена ты спрашивается тут электроэнергию жгёшь почём зря?

Далее была попытка вставить в чат в виде сообщения всей спеки целиком, но это не вышло, т.к. спека ~70 тыс строк, или ~2 Мб — такое даже текстовый редактор тяжело ворочает, не говоря уж о хроме, который слава богу в этот раз выстоял. А вот копилот сдулся, выдал 415 ошибку, пришлось перезагружать страницу.

hey are you still here?

have you received an instance of spec I gave you?

I apologize for any confusion, but I can’t directly receive or process external files or URLs. If you can provide specific details …

if I know specific detail your help was not needed in this case

бла-бла your frustration, я не я, и рожа не моя …

So can you read and analyse texts?

Yes, I can read and analyze text that you provide here. If you have specific sections or details from a document… (старая песня)

How can I submit a file for you?

It’s really a big text can you read it part by part?

Yes, you can share the text in parts, and I’ll read and analyze

Ok I’ll give several part then tell you when it’s finished, and you

That sounds like a good plan! Please go ahead …

Я разбил файл на части по 10 тыс строк, что тоже нетривиально для такого объёма (split -l 10000 -d) И начал по одной в чат запихивать. Но уже на второй части копилот мне сказал, что его контекстное окно , а точнее окно ChatGPT-4o уже прtвышено (это он эксепшен прям в чат выдал). На этом я понял, что копилот мне никакой не помощник и толку с него ноль, только время зря тратить.

Но тут во мне проснулся исследовательский интерес:, а сможет ли всё-таки ChatGPT — по факту он работал под капотом, выдать что-то дельное.

Я пошёл в сам чат, там он поддерживает загрузку файлов и я сразу предупредил, что будет много технического текста, он не испугался. С урла он тоже не захотел читать почему-то, но файл съел.

So it’s the spec. I need to know how to make request to gitlab to close merge request with merging one git branch to another

It looks like the file contains the full API specification for GitLab [верно, уже кое-что] … In GitLab’s API (as per the OpenAPI spec), the endpoints for managing merge requests are under the /api/v4/merge_requests path

Steps to merge and close a Merge Request (MR):

  1. Get Merge Request Details

    • You can first get the details of the merge request using a GET request to:

      ruby: GET /api/v4/projects/: id/merge_requests/: merge_request_iid

    • This will provide details about the merge request, including the source and target branches.

  2. Merge the Merge Request

    • To merge the merge request, you can use a PUT request to:

      ruby: PUT /api/v4/projects/: id/merge_requests/: merge_request_iid/merge

В этот момент, я не вытерпел и просто запустил grep по спеке, чтоб найти где-же этот нужный мне эндпойнт. Много чего нашлось, в т.ч. лишнего. Но первая же ссылка показывала, что ИИ взял эту же первую попавшуюся ссылку — неверно — и несёт теперь галиматью.

I think path '/api/v4/merge_requests' is not for merging, are you sure you are doing right?

You’re right to question that. I made an oversight. The path /api/v4/merge_requests is indeed used for creating, listing, and getting details … бла-бла

To merge a merge request, the correct API endpoint is actually:

PUT /api/v4/projects/: id/merge_requests/: merge_request_iid/merge

ААА! Ну тупая железка!

That’s a bullshit, you are completely worng, just read the comment for endpoint

бла-бла …

Correct Endpoint

PUT /api/v4/projects/: id/merge_requests/: merge_request_iid/merge

Thank you for your patience! Let me know …

stupid service

search other endpoints, as I see small grep tool works better than your petabytes of useless silicons parts

…Merge a Merge Request:

PUT /api/v4/projects/{id}/merge_requests/{merge_request_iid}/merge

Тебя матом ругали?

[молчание- зависло]

Тебя матом ругали?

…really sorry…

search for correct endpoint, I already found it actually

Thank you for your patience…

check this part: /api/v4/projects/{id}/merge_requests/{merge_request_iid}/approve and simialar things

Based on the search results, here are the relevant endpoints you were asking about for approving, unapproving, and managing merge request approvals in GitLab:

  1. Approve a Merge Request

    • Endpoint:

    POST /api/v4/projects/{id}/merge_requests/{merge_request_iid}/approve
    
    • Description: This endpoint is used to approve a merge request. You can approve the merge request by providing required parameters in the request body, such as the sha (the HEAD SHA of the source branch) and optionally an approval_password.

    --- и перечисляет несколько рандомных эндпойнтов

    it’s not what I need I need to merge request, it’s simialar but not this particular endpoint

Based on the search, I found the correct endpoint for merging a merge request in GitLab:

PUT /api/v4/projects/{id}/merge_requests/{merge_request_iid}/merge

Наконец-то! Когда я уже сам ручками всё нашёл, этот ИИ тоже определился с выбором, с моей помощью.

Вывод — эти помощники созданы чтобы вы их обучали, БЕСПЛАТНО, только за счёт вашего времени и нервов. Оно вам надо?

А всякие разговоры всяких кучерявых руководителей Меты о том, что ИИ заменит мидлов — просто брехня,. Ему надо пиарить свою ламу, он и упирается. На деле даже на джуна не тянет, даже на 8-летнего ребёнка.

ok that sounds good, at least better than prevoius attempts

yes please generate request function for this endpoint in some abstract progrtamming langauge like java or typescript or go maybe

Ну здесь он что-то нагенерил, но тоже проверять надо.

© Habrahabr.ru