2014-04-22 16 views
8

Per migliorare il processo di sviluppo, la nostra organizzazione ha deciso di introdurre Gerrit nel flusso di lavoro di sviluppo. Sono il responsabile dell'implementazione del server Gerrit. Le guide utente disponibili su Internet sono state di grande aiuto nell'implementazione di Gerrit nel nostro flusso di lavoro esistente. Usiamo Jenkins e Sonar come utenti non interattivi per verificare le build. Ma mentre si tratta di repository, sorge una domanda. La maggior parte delle fonti aperte utilizza il plugin gerrit-replication per replicare l'ultimo codice nel proprio repository di codice pubblico. Questi repository pubblici sono esposti utilizzando GitLab in modo che gli utenti possano clonare il codice. Qui non abbiamo bisogno di un repository pubblico poiché il codice viene mantenuto in house.Gerrit - Integrazione Gitlab

È una buona scelta indicare GitLab e Gerrit in un percorso di repository git comune?

Qualsiasi aiuto apprezzato.

+0

non sono sicuro , se ho capito bene. Se esponi il repository Git all'interno dell'installazione di Gerrit anche tramite Gitlab, non è un problema da parte di Gerrit, almeno finché Gitlab è di sola lettura (non sono sicuro di scrivere nel repository). – StephenKing

+0

Grazie per la risposta @StephenKing Ho fatto un prototipo configurando il repository git esistente (che è già stato esposto usando github_) con gerrit. E sta funzionando bene. Il mio dubbio è che sia una buona scelta? – dasrohith

+0

sì, è un lavoro per me qualche tempo fa – kikicarbonell

risposta

7

È possibile utilizzare gerrit davanti a gitlab tramite la funzione di replica. La funzione di replica non esegue un clone/recupero di git, ma spinge solo le modifiche (approvate) in un repository remoto.

  • devi importare repository tramite ad es. 'git push origin master' che richiede permessi supplementari (o devi essere l'amministratore). Questo non è un grosso problema a meno che non si dimentichi di rimuovere queste autorizzazioni . Se ti dimentichi di rimuovere queste autorizzazioni o sei l'amministratore (che ha queste autorizzazioni): un "git push" predefinito sarà passare attraverso senza essere rivisto.
  • è necessario assicurarsi che nessuno possa eseguire il commit all'istanza di gitlab. Altrimenti si ha una grande possibilità di incorrere in conflitti di fusione (gerrit è non consapevole di questi nuovi commit). Puoi proteggere i rami in gitlab - ma gli amministratori (e se ricordo che anche il creatore/proprietario del repository ) avrà sempre questo diritto.
  • È necessario concedere le autorizzazioni di un utente gerrit master per consentirne il push nel repository gitlab.
  • Tutti i progetti devono essere prima creata in gitlab, altrimenti non saranno sincronizzati (a meno che non si trova un modo che il repo verrà creato automaticamente nella gitlab al primo git push)
+0

Puoi per favore approfondire l'argomento sulla funzione di replica? Come sto cercando di fare lo stesso, ma non sono in grado di capire quali sono i comandi utilizzati per la replica? Grazie – 1218GG