web-dev-qa-db-ja.com

GitLabサーバーからマージリクエストを削除する方法

Gitlab(ローカル)サーバーでマージリクエストを作成しました。現在、マージリクエストをクリックすると、リクエストはエラー500でタイムアウトします。それ以前は、エラーコード504を取得し、 このgitlabサポートトピック に記載されている変更を適用しました。

マージ要求を削除するだけです。これを手動で行う方法はありますか?

22
Sanj

はい、あります...マージ要求をユーザーインターフェイスで削除する方法が見つかりませんでしたが、データベースから削除するだけで済みます。

(Ubuntu 14.04.3 LTS上のgitlab CE 8.4.0-ce.0でのみテストしたことに注意してください。他のバージョンは異なるデータベース構造を持つ可能性があります)

コマンドプロンプトで、次のコマンドを(ルートとして)実行します。

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、削除したいマージ要求を見つけたとしましょう。id5。次の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インターフェイスからマージリクエストが削除されます。

9
Ray Perea

Web UIオプション

今日、Web UIでこれを行う方法を発見しました。

マージリクエスト14の場合

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

右下に、赤いDeleteボタンが表示されます。

Gitlab Delete Merge Request Screen Shot

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

27
Eric D. Johnson

これがCEでも機能するかどうかはわかりませんが、少なくともEEにはマージリクエストを削除するAPIエンドポイントがあります。

curl --request DELETE --header "PRIVATE-TOKEN: <private_token>" https://gitlab.example.com/api/v3/projects/4/merge_request/85
4
Thomas Keller