50

我在 gitlab(本地)服务器上创建了一个合并请求。现在,每当我单击合并请求时,请求都会超时并出现错误 500。在此之前,我曾经收到错误代码 504,并且我应用了这个 gitlab 支持主题中提到的更改。

我要做的就是删除合并请求。有手动的方法吗?

4

4 回答 4

70

网页界面选项

今天,我发现了一种使用 Web UI 实现此目的的方法。

所以对于合并请求 14

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

在右下角,您应该看到一个红色的删除按钮。

Gitlab 删除合并请求屏幕截图

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'}

于 2018-04-11T15:46:15.647 回答
15

是的,有....我找不到在用户界面中删除合并请求的方法,但您可以简单地将其从数据库中删除。

(请注意,我只在 Ubuntu 14.04.3 LTS 上的 gitlab CE 8.4.0-ce.0 上对此进行了测试。其他版本可能有不同的数据库结构)

在命令提示符处,执行以下命令(以 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

好的,假设您找到了要删除的合并请求,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

您的合并请求现在应该从 Web 界面中消失了。

于 2016-01-24T23:03:16.443 回答
11

我不知道这是否也适用于 CE,但至少 EE 有一个 API 端点来删除合并请求:

curl --request DELETE --header "PRIVATE-TOKEN: <private_token>" https://gitlab.example.com/api/v3/projects/4/merge_request/85
于 2016-12-07T14:38:31.333 回答
-4

转到目标存储库,在该存储库上找到合并请求,然后单击“关闭合并请求”。由于这是您的合并请求,因此您有权这样做。

于 2017-05-29T15:07:09.823 回答