Как удалить запрос слияния с сервера 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
в правом нижнем углу вы увидите красный удалить.
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
перейдите в целевой репозиторий, найдите запрос слияния на этом РЕПО и просто нажмите "закрыть запрос слияния". Поскольку это ваш запрос на слияние, у вас есть права на это.