我在 gitlab(本地)服务器上创建了一个合并请求。现在,每当我单击合并请求时,请求都会超时并出现错误 500。在此之前,我曾经收到错误代码 504,并且我应用了这个 gitlab 支持主题中提到的更改。
我要做的就是删除合并请求。有手动的方法吗?
我在 gitlab(本地)服务器上创建了一个合并请求。现在,每当我单击合并请求时,请求都会超时并出现错误 500。在此之前,我曾经收到错误代码 504,并且我应用了这个 gitlab 支持主题中提到的更改。
我要做的就是删除合并请求。有手动的方法吗?
今天,我发现了一种使用 Web UI 实现此目的的方法。
所以对于合并请求 14
https://gitlab.example.com/MyGroup/MyProject/merge_requests/14/edit
在右下角,您应该看到一个红色的删除按钮。
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'}
是的,有....我找不到在用户界面中删除合并请求的方法,但您可以简单地将其从数据库中删除。
(请注意,我只在 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 界面中消失了。
我不知道这是否也适用于 CE,但至少 EE 有一个 API 端点来删除合并请求:
curl --request DELETE --header "PRIVATE-TOKEN: <private_token>" https://gitlab.example.com/api/v3/projects/4/merge_request/85
转到目标存储库,在该存储库上找到合并请求,然后单击“关闭合并请求”。由于这是您的合并请求,因此您有权这样做。