gitlab (ローカル) サーバーでマージ リクエストを作成しました。これで、マージ リクエストをクリックするたびに、リクエストがエラー 500 でタイムアウトします。それ以前は、エラー コード 504 が表示されていたので、この gitlab サポート トピックに記載されている変更を適用しました。
私がやりたいのは、マージ要求を削除することだけです。これを手動で行う方法はありますか?
gitlab (ローカル) サーバーでマージ リクエストを作成しました。これで、マージ リクエストをクリックするたびに、リクエストがエラー 500 でタイムアウトします。それ以前は、エラー コード 504 が表示されていたので、この gitlab サポート トピックに記載されている変更を適用しました。
私がやりたいのは、マージ要求を削除することだけです。これを手動で行う方法はありますか?
はい、あります.... ユーザー インターフェイスでマージ リクエストを削除する方法が見つかりませんでしたが、データベースから削除するだけで済みます。
(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
OK、削除したいマージリクエストが見つかったとしましょ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