2015-08-25 19 views
9

Ho creato una richiesta di unione sul server gitlab (locale). Ora ogni volta che clicco sulla richiesta di fusione, la richiesta scade con l'errore 500. Prima ricevevo un codice di errore 504 e ho applicato la modifica menzionata in this gitlab support topic.Come rimuovere la richiesta di unione dal server GitLab

Tutto ciò che voglio fare è rimuovere la richiesta di unione. C'è un modo manuale per farlo?

+0

Grazie per le modifiche ... che ne dici di alcune risposte ora !! – Sanj

risposta

8

Sì, c'è .... Non sono riuscito a trovare un modo per rimuovere la richiesta di unione nell'interfaccia utente, ma è sufficiente eliminarlo dal database.

(Si prega di notare, che ho provato solo questo su gitlab CE 8.4.0-ce.0 su Ubuntu 14.04.3 LTS .. Altre versioni possono avere una struttura di database diverso)

Al prompt dei comandi, eseguire il seguente comando (come utente root):

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

Questo farà apparire un terminale di comando PostgreSQL. Successivamente, dovrai trovare la richiesta di unione che desideri eliminare. Digitare quanto segue al terminale di comando PostgreSQL:

select id, title from merge_requests; 

si otterrà un elenco di richieste di unione id e titoli. Trova quello che desideri eliminare e notare la id

OK, diciamo che hai trovato la richiesta di unione che si desideri eliminare e la id è 5. Stai semplicemente cancellando tutti i dati associati a quella richiesta di fusione usando i seguenti comandi SQL. (Sostituto 5 nei comandi di seguito con la richiesta di unione reale 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; 

È ora possibile uscita dal terminale di comando PostgreSQL digitando:

\q 

La vostra richiesta di fusione dovrebbe ora essere andato dal interfaccia web.

+1

Questa procedura funziona ancora su Gitlab CE 8.5.8 (46bb47a). Quindi suppongo che anche per lo meno su tutte le versioni ci siano anche 8.4.0 e 8.5.8. –

+0

Penso che la soluzione proposta da @ thomas-keller sia più pulita. Fiddling direttamente nel DB è soggetto a errori e devi essere sicuro al 100% di pulire correttamente tutto. L'utilizzo dell'API sposta questa responsabilità verso gli sviluppatori GitLab che hanno senza dubbio una migliore comprensione di ciò che dovrebbe (e non dovrebbe) accadere quando si elimina un MR. – exhuma

2

Non so se questo funziona con CE pure, ma almeno EE ha un endpoint API per cancellare le richieste di unione:

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

Appena testato con CE e funziona come un fascino. Grazie! – exhuma

0

Vai alla repository di destinazione, trovare la richiesta di unione su quella dei pronti contro termine e fai semplicemente clic su "Chiudi Merge Request". Dal momento che è la tua richiesta di fusione, hai i diritti per farlo.

+1

La chiusura non è la stessa cosa dell'eliminazione. La chiusura del MR lo tiene nel DB per i posteri. A volte potresti voler completamente sbarazzartene (ad esempio quando apri MR per testare qualcosa). – exhuma