Как удалить запрос слияния с сервера GitLab

Я создал запрос слияния на сервере gitlab (local). Теперь, когда я нажимаю на запрос слияния, запрос истекает с ошибкой 500. До этого я использовал код ошибки 504, и я применил изменение, упомянутое в this тема поддержки gitlab.

Все, что я хочу сделать, это удалить запрос слияния. Есть ли ручной способ сделать это?

Ответ 1

Да, есть.... Я не смог найти способ удалить запрос слияния в пользовательском интерфейсе, но вы можете просто удалить его из базы данных.

(Обратите внимание, что я тестировал это только на gitlab CE 8.4.0-ce.0 на Ubuntu 14.04.3 LTS.. Другие версии могут иметь другую структуру базы данных)

В командной строке выполните следующую команду (с правами администратора):

sudo -u gitlab-psql /opt/gitlab/embedded/bin/psql -h /var/opt/gitlab/postgresql -d gitlabhq_production

Появится командный терминал PostgreSQL. Затем вам нужно будет найти запрос на объединение, который вы хотите удалить. Введите в командной строке PostgreSQL следующее:

select id, title from merge_requests;

Вы получите список идентификаторов и названий слияния. Найдите тот, который вы хотите удалить, и обратите внимание на id

ОК, скажем, вы нашли запрос слияния, который хотите удалить, а id - 5. Вы просто удалите все данные, связанные с этим запросом на слияние, используя следующие команды SQL. (Замените 5 в приведенных ниже командах вашим фактическим запросом на слияние id)

delete from merge_requests where id = 5;
delete from merge_request_diffs where merge_request_id = 5;
delete from notes where noteable_type = 'MergeRequest' and noteable_id = 5;

Теперь вы можете выйти из командного терминала PostgreSQL, введя:

\q

Теперь ваш запрос на слияние исчезнет из веб-интерфейса.

Ответ 2

Опция веб-интерфейса

Сегодня я нашел способ сделать это с помощью веб-интерфейса.

Так что для запроса на слияние 14

https://gitlab.example.com/MyGroup/MyProject/merge_requests/14/edit

Справа внизу вы должны увидеть красную кнопку Удалить.

Gitlab Delete Merge Request Screen Shot

Опция PowerShell

Invoke-RestMethod -Method Delete -Uri 'https://gitlab.example.com/api/v4/projects/PROJECT_ID_GOES_HERE/merge_requests/14' -Headers @{'PRIVATE-TOKEN'='PRIVATE_TOKEN_GOES_HERE'}

Ответ 3

Я не знаю, работает ли это с CE, но по крайней мере у EE есть конечная точка API для удаления запросов слияния:

curl --request DELETE --header "PRIVATE-TOKEN: <private_token>" https://gitlab.example.com/api/v3/projects/4/merge_request/85

Ответ 4

Перейдите в репозиторий-получатель, найдите запрос слияния на этом репо и просто нажмите "Закрыть запрос на объединение". Поскольку это ваш запрос на слияние, у вас есть права на это.