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

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

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

4 ответов


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

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

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

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 is 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

теперь ваш запрос на слияние должен быть удален из веб-интерфейса.


Web UI Option

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

поэтому для запроса слияния 14

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

в правом нижнем углу вы увидите красный удалить.

Gitlab Delete Merge Request Screen Shot

PowerShell Option

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


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

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

перейдите в целевой репозиторий, найдите запрос слияния на этом РЕПО и просто нажмите "закрыть запрос слияния". Поскольку это ваш запрос на слияние, у вас есть права на это.