如何从 GitLab 服务器删除合并请求
How to remove merge request from GitLab server
我在 gitlab(本地)服务器上创建了一个合并请求。现在,每当我单击合并请求时,请求都会超时并显示错误 500。在此之前,我曾经收到错误代码 504,并且我应用了 this gitlab support topic.
中提到的更改
我只想删除合并请求。有手动方法吗?
是的,有...。我找不到在用户界面中删除合并请求的方法,但您可以简单地将其从数据库中删除。
(请注意,我只在 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
转到目标存储库,在该存储库上找到合并请求,然后单击 "Close Merge Request"。由于这是您的合并请求,您有权这样做。
网络UI选项
今天我发现了一种通过 Web 实现此目的的方法 UI。
所以对于合并请求 14
https://gitlab.example.com/MyGroup/MyProject/merge_requests/14/edit
在右下角,您应该会看到一个红色的 删除 按钮。
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'}
我在 gitlab(本地)服务器上创建了一个合并请求。现在,每当我单击合并请求时,请求都会超时并显示错误 500。在此之前,我曾经收到错误代码 504,并且我应用了 this gitlab support topic.
中提到的更改我只想删除合并请求。有手动方法吗?
是的,有...。我找不到在用户界面中删除合并请求的方法,但您可以简单地将其从数据库中删除。
(请注意,我只在 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
转到目标存储库,在该存储库上找到合并请求,然后单击 "Close Merge Request"。由于这是您的合并请求,您有权这样做。
网络UI选项
今天我发现了一种通过 Web 实现此目的的方法 UI。
所以对于合并请求 14
https://gitlab.example.com/MyGroup/MyProject/merge_requests/14/edit
在右下角,您应该会看到一个红色的 删除 按钮。
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'}