2016-07-15 2 views
1

Я создал сценарий оболочки для создания и принятия запроса на слияние.gitlab api принимает запрос слияния

Первое действие (создание) работает нормально, но второе действие (принятие) терпит неудачу.

Это мой код:

curl -X PUT -H "PRIVATE-TOKEN: abc123" -d id=86 -d merge_request_id=323 https://gitlab/api/v3/projects/86/merge_requests/323/merge 

обратной связи API:

{"message":"404 Not found"} 

GitLab API документация по запросам слияния: https://gitlab.com/help/api/merge_requests.md#accept-mr

ответ

0

Вскоре после моего предыдущего поста я обнаружил, что URL-адрес неверен.

Структура не поддерживается в API.

Запрос, который работает является: https://gitlab/api/v3/projects/86/merge_request/323/слияния (уведомление ПРОСЬБА, не ПРЕДЛАГАЕТ)

+0

В GitLab 8.17.2 единственного 'merge_request' и множественного числа' merge_requests' работы , –

1

Используйте глобально уникальный внутренний идентификатор MR, НЕ его локальный идентификатор.

Так что если у вас есть URL веб-интерфейса в MR вы хотите принять, как это:

https://gitlab.domain.com/group/project/merge_requests/11/commits 
                 ^^--- ..then *DON'T* use this id! 

Вместо если вы создаете MR с API (или get a list of them in a project) и увидеть его JSON:

{ 
    "id": 16393, # <--- ...then USE THIS id... 
    "iid": 11, 
    "project_id": 1162, 
    "title": "MR title...", 
    (...) 
} 

... в вашем MR принять запрос:

curl -X PUT https://gitlab.domain.com/api/v3/projects/1162/merge_requests/16393/merge 
#       the globally unique internal id of the MR ---^^^^^ 

(На мой взгляд, это своего рода заблуждение, потому что по состоянию на март 2017 the GitLab API docs вызов глобальной один iid (внутренний идентификатор) ...)

Смежные вопросы