2016-06-30 5 views
2

Я хотел бы установить атрибут merge_when_build_succeeds запроса слияния с помощью API Gitlab. В docs указано, что, когда необязательный параметр merged_when_build_succeeds равен true, MR будет приниматься только после того, как сборка завершится успешно.Gitlab API, Merge When Build Succeeds

Как я могу предоставить этот параметр merged_when_build_succeeds API? Я попытался следующие curl команды без успеха:

# In the request's body 
[email protected]:~$ curl -X PUT --header "PRIVATE-TOKEN: zvzK7CNzx9WviV5iChyg" -d merged_when_build_succeeds=true "http://localhost:8080/api/v3/projects/1/merge_requests/9/merge" 
{"message":"405 Method Not Allowed"} 

# In the URL 
[email protected]:~$ curl -X PUT --header "PRIVATE-TOKEN: zvzK7CNzx9WviV5iChyg" "http://localhost:8080/api/v3/projects/1/merge_requests/9/merge?merged_when_build_succeeds=true" 
{"message":"405 Method Not Allowed"} 

# I tried this also, maybe the __merged__ is a mistake in the docs 
[email protected]:~$ curl -X PUT --header "PRIVATE-TOKEN: zvzK7CNzx9WviV5iChyg" -d merge_when_build_succeeds=true "http://localhost:8080/api/v3/projects/1/merge_requests/9/merge" 
{"message":"405 Method Not Allowed"} 

# In the URL 
[email protected]:~$ curl -X PUT --header "PRIVATE-TOKEN: zvzK7CNzx9WviV5iChyg" "http://localhost:8080/api/v3/projects/1/merge_requests/9/merge?merge_when_build_succeeds=true" 
{"message":"405 Method Not Allowed"} 

# Some other CURL parameters 
[email protected]:~$ curl -X PUT --header "PRIVATE-TOKEN: zvzK7CNzx9WviV5iChyg" -H "Content-Type: multipart/form-data;" -F "merge_when_build_succeeds=true" "http://localhost:8080/api/v3/projects/1/merge_requests/9/merge" 
{"message":"405 Method Not Allowed"} 

# Some other CURL parameters 
[email protected]:~$ curl -X PUT --header "PRIVATE-TOKEN: zvzK7CNzx9WviV5iChyg" -H "Content-Type: multipart/form-data;" -F "merged_when_build_succeeds=true" "http://localhost:8080/api/v3/projects/1/merge_requests/9/merge" 
{"message":"405 Method Not Allowed"} 

Новая функция, «Разрешить только запросы слияния будут объединены, если сборка прошла успешно» включен. Когда я выключаю эту функцию, любой вызов предыдущих вызовов объединяет MR до завершения сборки, см.: https://snag.gy/06nOEm.jpg

Частный токен, а URL-адрес правильный. Я могу запросить информацию МР:

[email protected]:~$ curl -X GET --header "PRIVATE-TOKEN: zvzK7CNzx9WviV5iChyg" "http://localhost:8080/api/v3/projects/1/merge_requests/9" 
{"id":9,"iid":9,"project_id":1,"title":"enters","description":"","state":"opened","created_at":"2016-06-29T15:36:15.235Z","updated_at":"2016-06-29T15:36:15.235Z","target_branch":"master","source_branch":"features/long_build_05","upvotes":0,"downvotes":0,"author":{"name":"Vilmos Nagy","username":"vilmos.nagy","id":2,"state":"active","avatar_url":"http://www.gravatar.com/avatar/4f94d9571ec83f42a85651291296f503?s=80\u0026d=identicon","web_url":"http://172.21.0.3/u/vilmos.nagy"},"assignee":null,"source_project_id":2,"target_project_id":1,"labels":[],"work_in_progress":false,"milestone":null,"merge_when_build_succeeds":false,"merge_status":"can_be_merged","subscribed":false,"user_notes_count":0} 

И я могу принять MR после того, как сборка прошла успешно:

[email protected]:~$ curl -X PUT --header "PRIVATE-TOKEN: zvzK7CNzx9WviV5iChyg" "http://localhost:8080/api/v3/projects/1/merge_requests/9/merge" 
{"id":9,"iid":9,"project_id":1,"title":"enters","description":"","state":"merged","created_at":"2016-06-29T15:36:15.235Z","updated_at":"2016-06-29T16:13:41.242Z","target_branch":"master","source_branch":"features/long_build_05","upvotes":0,"downvotes":0,"author":{"name":"Vilmos Nagy","username":"vilmos.nagy","id":2,"state":"active","avatar_url":"http://www.gravatar.com/avatar/4f94d9571ec83f42a85651291296f503?s=80\u0026d=identicon","web_url":"http://172.21.0.3/u/vilmos.nagy"},"assignee":null,"source_project_id":2,"target_project_id":1,"labels":[],"work_in_progress":false,"milestone":null,"merge_when_build_succeeds":false,"merge_status":"can_be_merged","subscribed":true,"user_notes_count":0} 

Не могли бы вы мне помочь, и дать мне правильный вызов данного API?

Спасибо!

Вилмос

ответ

2

кажется документация неправильно, то параметр на самом деле называется merge_when_build_succeeds (без «г» в «слияние»).

curl -X PUT --header "PRIVATE-TOKEN: zvzK7CNzx9WviV5iChyg" -d merge_when_build_succeeds=true "http://localhost:8080/api/v3/projects/1/merge_requests/9/merge" должен работать («405 Method Not Allowed» был, вероятно, из-за чего-то другого, например, MR был уже объединен или имел конфликты).

Я создал вопрос вы можете следовать, если вы хотите знать, когда документация фиксирована: https://gitlab.com/gitlab-org/gitlab-ce/issues/19448

+0

Спасибо! Я снова посмотрю на это ('-d merge_when_build_succeeds = true') в следующие дни, и я собираюсь ответить на что-то более полезное. :-) –

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