Gitlab(ローカル)サーバーでマージリクエストを作成しました。現在、マージリクエストをクリックすると、リクエストはエラー500でタイムアウトします。それ以前は、エラーコード504を取得し、 このgitlabサポートトピック に記載されている変更を適用しました。
マージ要求を削除するだけです。これを手動で行う方法はありますか?
はい、あります...マージ要求をユーザーインターフェイスで削除する方法が見つかりませんでしたが、データベースから削除するだけで済みます。
(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、削除したいマージ要求を見つけたとしましょう。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インターフェイスからマージリクエストが削除されます。
今日、Web UIでこれを行う方法を発見しました。
マージリクエスト14の場合
https://gitlab.example.com/MyGroup/MyProject/merge_requests/14/edit
右下に、赤いDeleteボタンが表示されます。
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'}
これがCEでも機能するかどうかはわかりませんが、少なくともEEにはマージリクエストを削除するAPIエンドポイントがあります。
curl --request DELETE --header "PRIVATE-TOKEN: <private_token>" https://gitlab.example.com/api/v3/projects/4/merge_request/85