2015-08-25 8 views
9

Ich habe eine Zusammenführungsanforderung auf dem gitlab (lokalen) Server erstellt. Wenn ich nun auf die Zusammenführungsanforderung klicke, wird die Anfrage mit dem Fehler 500 abgebrochen. Vorher habe ich den Fehlercode 504 erhalten und die Änderung, die in this gitlab support topic erwähnt wurde, übernommen.So entfernen Sie die Zusammenführungsanforderung vom GitLab-Server

Alles, was ich tun möchte, ist die Zusammenführungsanforderung zu entfernen. Gibt es einen manuellen Weg, dies zu tun?

+0

Danke für die Änderungen ... wie wäre es mit einigen Antworten jetzt !! – Sanj

Antwort

8

Ja, gibt es .... Ich konnte keinen Weg finden, um die Zusammenführungsfrage in der Benutzeroberfläche zu entfernen, aber Sie können es einfach aus der Datenbank löschen.

(Bitte beachten Sie, dass ich dies nur auf eine andere Datenbankstruktur Gitlab CE 8.4.0-ce.0 auf Ubuntu 14.04.3 LTS .. Andere Versionen getestet haben)

an einer Eingabeaufforderung ausführen der folgende Befehl (als root):

sudo -u gitlab-psql /opt/gitlab/embedded/bin/psql -h /var/opt/gitlab/postgresql -d gitlabhq_production 

Dadurch wird ein PostgreSQL-Befehls-Terminal angezeigt. Als Nächstes müssen Sie die Zusammenführungsanforderung finden, die Sie löschen möchten. Geben Sie Folgendes an dem PostgreSQL Kommando-Terminal:

select id, title from merge_requests; 

Sie erhalten eine Liste von Merge-Request-IDs und Titel bekommen. Suchen Sie den Eintrag, den Sie löschen möchten, und notieren Sie sich die id

OK, sagen wir, Sie haben die Zusammenführungsanforderung gefunden, die Sie löschen möchten, und die id ist 5. Sie löschen einfach alle Daten, die mit dieser Zusammenführungsanforderung verknüpft sind, indem Sie die folgenden SQL-Befehle verwenden. (Stellvertreter 5 in den folgenden Befehlen mit Ihrer tatsächlichen merge Anfrage 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; 

Sie können nun Ausfahrt aus dem PostgreSQL Kommando-Terminal eingeben:

\q 

Ihre merge Anfrage sollte nun von der weg sein Webschnittstelle.

+1

Diese Prozedur funktioniert immer noch auf Gitlab CE 8.5.8 (46bb47a). Das nehme ich zumindest auch für alle Versionen zwischen 8.4.0 und 8.5.8 an. –

+0

Ich denke die Lösung von @ Thomas-Keller ist sauberer. Fummelei direkt in der Datenbank ist fehleranfällig und Sie müssen 100% sicher sein, dass Sie alles richtig reinigen. Die Verwendung der API verlagert diese Verantwortung auf die GitLab-Entwickler, die zweifellos besser verstehen, was beim Löschen eines MR passieren sollte (und was nicht). – exhuma

2

Ich weiß nicht, ob dies mit CE funktioniert auch, aber zumindest EE hat einen API-Endpunkt merge Anfragen zu löschen:

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

Nur mit CE getestet und funktioniert wie ein Charme. Vielen Dank! – exhuma

0

Zum Zielrepository, findet die Zusammenführung Anforderung an diesem Repo und klicken Sie einfach auf "Close Merge Request". Da es sich um Ihre Zusammenführungsanfrage handelt, haben Sie die entsprechenden Rechte.

+1

Schließen ist nicht das Gleiche wie Löschen. Das Schließen des MR hält es in der DB für die Nachwelt. Manchmal möchten Sie es jedoch komplett loswerden (zum Beispiel wenn Sie MR öffnen, um etwas zu testen). – exhuma

Verwandte Themen